From 0b9986394056889058d1bd31c308952bfb318113 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?=
 <rafael.carre@savoirfairelinux.com>
Date: Mon, 12 Sep 2011 11:05:38 -0400
Subject: [PATCH] * #5695: addressbook : remove AddrBookHandle from plugin

---
 gnome/src/contacts/addrbookfactory.c        |  4 ----
 gnome/src/contacts/addressbook.h            |  3 +--
 gnome/src/contacts/searchbar.c              |  6 +++---
 plugins/addressbook/evolution/addressbook.c | 14 ++------------
 plugins/addressbook/evolution/addressbook.h | 21 +--------------------
 plugins/addressbook/evolution/eds.c         |  2 +-
 plugins/addressbook/evolution/eds.h         |  3 ---
 7 files changed, 8 insertions(+), 45 deletions(-)

diff --git a/gnome/src/contacts/addrbookfactory.c b/gnome/src/contacts/addrbookfactory.c
index af213b1ce8..964596452a 100644
--- a/gnome/src/contacts/addrbookfactory.c
+++ b/gnome/src/contacts/addrbookfactory.c
@@ -81,10 +81,6 @@ void abookfactory_load_module(AddrBookFactory *factory)
     if(ab->is_ready == NULL)
         ERROR("AddressbookFactory: Error: Could not load addressbook addressbook_is_ready function");
 
-    ab->is_enabled = dlsym(handle, "addressbook_is_enabled");
-    if(ab->is_enabled == NULL)
-        ERROR("AddressbookFactory: Error: Could not load addressbook addressbook_is_enabled function");
-
     ab->is_active = dlsym(handle, "addressbook_is_active");
     if(ab->is_active == NULL)
         ERROR("AddressbookFactory: Error: Could not load addressbook addressbook_is_active function");
diff --git a/gnome/src/contacts/addressbook.h b/gnome/src/contacts/addressbook.h
index f99b44996d..49bcb7cc4c 100644
--- a/gnome/src/contacts/addressbook.h
+++ b/gnome/src/contacts/addressbook.h
@@ -80,9 +80,8 @@ typedef struct AddrBookHandle AddrBookHandle;
 struct AddrBookHandle {
     void (*init) (gchar **);
     gboolean (*is_ready) (void);
-    gboolean (*is_enabled) (void);
     gboolean (*is_active) (void);
-    void (*search) (AddrBookHandle *, GtkEntry *, AddressBook_Config *);
+    void (*search) (void (*search_cb)(GList *, gpointer), GtkEntry *, AddressBook_Config *);
     GSList *(*get_books_data)(gchar **);
     book_data_t *(*get_book_data_by_uid)(gchar *);
     void (*set_current_book)(gchar *); 
diff --git a/gnome/src/contacts/searchbar.c b/gnome/src/contacts/searchbar.c
index f4b7760677..947f7b39e6 100644
--- a/gnome/src/contacts/searchbar.c
+++ b/gnome/src/contacts/searchbar.c
@@ -64,7 +64,7 @@ void searchbar_addressbook_activated (GtkEntry *entry, gchar *arg1 UNUSED, gpoin
         AddrBookFactory *factory = abookfactory_get_factory();
 	AddressBook_Config *addressbook_config; 
         addressbook_config_load_parameters(&addressbook_config);
-        factory->addrbook->search(factory->addrbook, entry, addressbook_config);
+        factory->addrbook->search(factory->addrbook->search_cb, entry, addressbook_config);
     }
 }
 
@@ -88,7 +88,7 @@ static void cbox_changed_cb (GtkWidget *widget, gpointer user_data UNUSED)
         factory->addrbook->set_current_book (gtk_combo_box_get_active_text (GTK_COMBO_BOX (widget)));
         AddressBook_Config *addressbook_config;
         addressbook_config_load_parameters(&addressbook_config);
-        factory->addrbook->search(factory->addrbook, GTK_ENTRY(addressbookentry), addressbook_config);
+        factory->addrbook->search(factory->addrbook->search_cb, GTK_ENTRY(addressbookentry), addressbook_config);
     }
 }
 
@@ -190,7 +190,7 @@ static void select_search_type (GtkWidget *item, GtkEntry  *entry UNUSED)
   
         AddressBook_Config *addressbook_config;
         addressbook_config_load_parameters(&addressbook_config);
-        factory->addrbook->search (factory->addrbook, GTK_ENTRY (addressbookentry), addressbook_config);
+        factory->addrbook->search (factory->addrbook->search_cb, GTK_ENTRY (addressbookentry), addressbook_config);
     }
 
 }
diff --git a/plugins/addressbook/evolution/addressbook.c b/plugins/addressbook/evolution/addressbook.c
index 6618c3a679..f9aad74d12 100644
--- a/plugins/addressbook/evolution/addressbook.c
+++ b/plugins/addressbook/evolution/addressbook.c
@@ -37,22 +37,12 @@
  * Perform a search on address book
  */
 void
-addressbook_search (AddrBookHandle *handle, GtkEntry* entry, AddressBook_Config *addressbook_config)
+addressbook_search (void (*search_cb)(GList *, gpointer), GtkEntry* entry, AddressBook_Config *addressbook_config)
 {
     const gchar* query = gtk_entry_get_text (GTK_ENTRY (entry));
     printf("Addressbook: Search %s\n", query);
 
-    search_async_by_contacts (gtk_entry_get_text (GTK_ENTRY (entry)), addressbook_config->max_results, handle->search_cb, addressbook_config);
-
-}
-
-/**
- * Return addressbook state
- */
-gboolean
-addressbook_is_enabled()
-{
-    return TRUE;
+    search_async_by_contacts (gtk_entry_get_text (GTK_ENTRY (entry)), addressbook_config->max_results, search_cb, addressbook_config);
 }
 
 /**
diff --git a/plugins/addressbook/evolution/addressbook.h b/plugins/addressbook/evolution/addressbook.h
index c9d7b99742..5fc3b563b6 100644
--- a/plugins/addressbook/evolution/addressbook.h
+++ b/plugins/addressbook/evolution/addressbook.h
@@ -39,10 +39,6 @@
 #define __ADDRESSBOOK_H__
 
 #include <gtk/gtk.h>
-// #include <addressbook/eds.h>
-
-
-#define EMPTY_ENTRY     "empty"
 
 typedef enum {ABOOK_QUERY_IS, ABOOK_QUERY_BEGINS_WITH, ABOOK_QUERY_CONTAINS} AddrbookSearchType;
 
@@ -79,21 +75,6 @@ typedef struct _AddressBook_Config {
     gint search_phone_mobile;
 } AddressBook_Config;
 
-typedef struct AddrBookHandle AddrBookHandle;
-
-struct AddrBookHandle {
-    void (*init) (gchar **);
-    gboolean (*is_ready) (void);
-    gboolean (*is_enabled) (void);
-    gboolean (*is_active) (void);
-    void (*search) (AddrBookHandle *, GtkEntry *, AddressBook_Config *);
-    GSList *(*get_books_data)(gchar **);
-    book_data_t *(*get_book_data_by_uid)(gchar *);
-    void (*set_current_book)(gchar *); 
-    void (*set_search_type)(AddrbookSearchType);
-    void (*search_cb)(GList *, gpointer); 
-};
-
 /**
  * Initialize addressbook
  */
@@ -118,7 +99,7 @@ gboolean addressbook_is_active();
 /**
  * Perform a search in addressbook
  */
-void addressbook_search (AddrBookHandle *, GtkEntry *, AddressBook_Config *);
+void addressbook_search (void (*search_cb)(GList *, gpointer), GtkEntry *, AddressBook_Config *);
 
 /**
  * Get a list of addressbook book
diff --git a/plugins/addressbook/evolution/eds.c b/plugins/addressbook/evolution/eds.c
index af5d9bbc4e..8008fda360 100644
--- a/plugins/addressbook/evolution/eds.c
+++ b/plugins/addressbook/evolution/eds.c
@@ -737,7 +737,7 @@ fetch_information_from_contact (EContact *contact, EContactField field, gchar **
     to_fetch = g_strdup ( (char*) e_contact_get_const (contact, field));
 
     if (!to_fetch) {
-        to_fetch = g_strdup (EMPTY_ENTRY);
+        to_fetch = g_strdup ("empty");
     }
 
     *info = g_strdup (to_fetch);
diff --git a/plugins/addressbook/evolution/eds.h b/plugins/addressbook/evolution/eds.h
index 2211c6c375..8e86a70129 100644
--- a/plugins/addressbook/evolution/eds.h
+++ b/plugins/addressbook/evolution/eds.h
@@ -43,11 +43,8 @@
 #include <libebook/e-book.h>
 
 #include "addressbook.h"
-// #include "sflphone_const.h"
 
 
-#define EMPTY_ENTRY     "empty"
-
 G_BEGIN_DECLS
 
 /**
-- 
GitLab