[evolution-data-server/openismus-work-3-8: 35/118] EBookBackend added new ->set_locale() API and ->get_locale() API
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server/openismus-work-3-8: 35/118] EBookBackend added new ->set_locale() API and ->get_locale() API
- Date: Wed, 2 Oct 2013 21:18:40 +0000 (UTC)
commit f44aa895cdecd97651dfa2a42717a012ed9607a5
Author: Tristan Van Berkom <tristanvb openismus com>
Date: Fri May 17 20:03:45 2013 +0900
EBookBackend added new ->set_locale() API and ->get_locale() API
Use these to dynamically set the locale of a running addressbook, and also
to fetch the currently configured locale of an addressbook at startup time
addressbook/libedata-book/e-book-backend.c | 50 ++++++++++++++++++++++++++++
addressbook/libedata-book/e-book-backend.h | 6 +++
2 files changed, 56 insertions(+), 0 deletions(-)
---
diff --git a/addressbook/libedata-book/e-book-backend.c b/addressbook/libedata-book/e-book-backend.c
index 1e30896..af25c76 100644
--- a/addressbook/libedata-book/e-book-backend.c
+++ b/addressbook/libedata-book/e-book-backend.c
@@ -1200,6 +1200,56 @@ e_book_backend_sync (EBookBackend *backend)
}
/**
+ * e_book_backend_set_locale:
+ * @backend: an #EBookbackend
+ * @locale: the new locale for the addressbook
+ *
+ * Notify the addressbook backend that the current locale has
+ * changed, this is important for backends which support
+ * ordered result lists which are locale sensitive.
+ *
+ * Since: 3.10
+ */
+void
+e_book_backend_set_locale (EBookBackend *backend,
+ const gchar *locale)
+{
+ g_return_if_fail (E_IS_BOOK_BACKEND (backend));
+
+ g_object_ref (backend);
+
+ if (E_BOOK_BACKEND_GET_CLASS (backend)->set_locale)
+ (* E_BOOK_BACKEND_GET_CLASS (backend)->set_locale) (backend, locale);
+
+ g_object_unref (backend);
+}
+
+/**
+ * e_book_backend_get_locale:
+ * @backend: an #EBookbackend
+ *
+ * Fetch the currently configured locale for the addressbook
+ *
+ * Since: 3.10
+ */
+const gchar *
+e_book_backend_get_locale (EBookBackend *backend)
+{
+ const gchar *locale = NULL;
+
+ g_return_val_if_fail (E_IS_BOOK_BACKEND (backend), NULL);
+
+ g_object_ref (backend);
+
+ if (E_BOOK_BACKEND_GET_CLASS (backend)->get_locale)
+ locale = (* E_BOOK_BACKEND_GET_CLASS (backend)->get_locale) (backend);
+
+ g_object_unref (backend);
+
+ return locale;
+}
+
+/**
* e_book_backend_notify_update:
* @backend: an #EBookBackend
* @contact: a new or modified contact
diff --git a/addressbook/libedata-book/e-book-backend.h b/addressbook/libedata-book/e-book-backend.h
index b79da95..a70d621 100644
--- a/addressbook/libedata-book/e-book-backend.h
+++ b/addressbook/libedata-book/e-book-backend.h
@@ -200,6 +200,9 @@ struct _EBookBackendClass {
(*get_direct_book) (EBookBackend *backend);
void (*configure_direct) (EBookBackend *backend,
const gchar *config);
+ void (*set_locale) (EBookBackend *backend,
+ const gchar *locale);
+ const gchar *(*get_locale) (EBookBackend *backend);
/* Notification signals */
void (*sync) (EBookBackend *backend);
@@ -301,6 +304,9 @@ EDataBookDirect *
void e_book_backend_configure_direct (EBookBackend *backend, const gchar *config);
void e_book_backend_sync (EBookBackend *backend);
+void e_book_backend_set_locale (EBookBackend *backend,
+ const gchar *locale);
+const gchar *e_book_backend_get_locale (EBookBackend *backend);
/* protected functions for subclasses */
void e_book_backend_set_is_removed (EBookBackend *backend,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]