Skip to content
Snippets Groups Projects
Commit 53622593 authored by Rafaël Carré's avatar Rafaël Carré
Browse files

addressbook : simplify

parent af66eb76
No related branches found
No related tags found
No related merge requests found
...@@ -333,7 +333,7 @@ gboolean sflphone_init (GError **error) ...@@ -333,7 +333,7 @@ gboolean sflphone_init (GError **error)
if (!dbus_connect (error) || !dbus_register (getpid (), "Gtk+ Client", error)) if (!dbus_connect (error) || !dbus_register (getpid (), "Gtk+ Client", error))
return FALSE; return FALSE;
abookfactory_init_factory(); abook_init();
// Init icons factory // Init icons factory
init_icon_factory (); init_icon_factory ();
......
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include "addressbook-config.h" #include "addressbook-config.h"
#include "searchbar.h" #include "searchbar.h"
#include "contacts/addrbookfactory.h" #include "contacts/addrbookfactory.h"
// #include "contacts/addressbook/eds.h"
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
...@@ -44,44 +43,33 @@ enum { ...@@ -44,44 +43,33 @@ enum {
COLUMN_BOOK_ACTIVE, COLUMN_BOOK_NAME, COLUMN_BOOK_UID COLUMN_BOOK_ACTIVE, COLUMN_BOOK_NAME, COLUMN_BOOK_UID
}; };
void AddressBook_Config *addressbook_config_load_parameters ()
addressbook_config_load_parameters (AddressBook_Config **settings)
{ {
AddressBook_Config *config = g_new0 (AddressBook_Config, 1);
GHashTable *_params = NULL; GHashTable *params = dbus_get_addressbook_settings();
AddressBook_Config *_settings;
if (params == NULL) {
// Allocate a struct config->enable = 1;
_settings = g_new0 (AddressBook_Config, 1); config->max_results = 30;
config->display_contact_photo = 0;
// Fetch the settings from D-Bus config->search_phone_business = 1;
_params = (GHashTable*) dbus_get_addressbook_settings(); config->search_phone_home = 1;
config->search_phone_mobile = 1;
if (_params == NULL) {
DEBUG ("Addressbook: No parameters received, use default");
_settings->enable = 1;
_settings->max_results = 30;
_settings->display_contact_photo = 0;
_settings->search_phone_business = 1;
_settings->search_phone_home = 1;
_settings->search_phone_mobile = 1;
} }
else { else {
_settings->enable = (size_t) (g_hash_table_lookup (_params, ADDRESSBOOK_ENABLE)); config->enable = (size_t) (g_hash_table_lookup (params, ADDRESSBOOK_ENABLE));
_settings->max_results = (size_t) (g_hash_table_lookup (_params, ADDRESSBOOK_MAX_RESULTS)); config->max_results = (size_t) (g_hash_table_lookup (params, ADDRESSBOOK_MAX_RESULTS));
_settings->display_contact_photo = (size_t) (g_hash_table_lookup (_params, ADDRESSBOOK_DISPLAY_CONTACT_PHOTO)); config->display_contact_photo = (size_t) (g_hash_table_lookup (params, ADDRESSBOOK_DISPLAY_CONTACT_PHOTO));
_settings->search_phone_business = (size_t) (g_hash_table_lookup (_params, ADDRESSBOOK_DISPLAY_PHONE_BUSINESS)); config->search_phone_business = (size_t) (g_hash_table_lookup (params, ADDRESSBOOK_DISPLAY_PHONE_BUSINESS));
_settings->search_phone_home = (size_t) (g_hash_table_lookup (_params, ADDRESSBOOK_DISPLAY_PHONE_HOME)); config->search_phone_home = (size_t) (g_hash_table_lookup (params, ADDRESSBOOK_DISPLAY_PHONE_HOME));
_settings->search_phone_mobile = (size_t) (g_hash_table_lookup (_params, ADDRESSBOOK_DISPLAY_PHONE_MOBILE)); config->search_phone_mobile = (size_t) (g_hash_table_lookup (params, ADDRESSBOOK_DISPLAY_PHONE_MOBILE));
} }
DEBUG ("Addressbook: Settings: enabled %d, max_result %d, photo %d, business %d, home %d, mobile %d", DEBUG ("Addressbook: Settings: enabled %d, max_result %d, photo %d, business %d, home %d, mobile %d",
_settings->enable, _settings->max_results, _settings->display_contact_photo, config->enable, config->max_results, config->display_contact_photo,
_settings->search_phone_business, _settings->search_phone_home, _settings->search_phone_mobile); config->search_phone_business, config->search_phone_home, config->search_phone_mobile);
*settings = _settings; return config;
} }
void void
...@@ -211,9 +199,8 @@ addressbook_config_book_active_toggled ( ...@@ -211,9 +199,8 @@ addressbook_config_book_active_toggled (
gchar* name; gchar* name;
gchar* uid; gchar* uid;
if(!abookfactory_is_addressbook_loaded()) { if(!addrbook)
return; return;
}
// Get path of clicked book active toggle box // Get path of clicked book active toggle box
treePath = gtk_tree_path_new_from_string (path); treePath = gtk_tree_path_new_from_string (path);
...@@ -223,8 +210,6 @@ addressbook_config_book_active_toggled ( ...@@ -223,8 +210,6 @@ addressbook_config_book_active_toggled (
return; return;
} }
AddrBookFactory *factory = abookfactory_get_factory();
gtk_tree_model_get_iter (model, &iter, treePath); gtk_tree_model_get_iter (model, &iter, treePath);
// Get active value at iteration // Get active value at iteration
...@@ -240,7 +225,7 @@ addressbook_config_book_active_toggled ( ...@@ -240,7 +225,7 @@ addressbook_config_book_active_toggled (
gtk_tree_path_free (treePath); gtk_tree_path_free (treePath);
// Update current memory stored books data // Update current memory stored books data
book_data = factory->addrbook->get_book_data_by_uid(uid); book_data = addrbook->get_book_data_by_uid(uid);
if(book_data == NULL) { if(book_data == NULL) {
ERROR("Addressbook: Error: Could not find addressbook %s", uid); ERROR("Addressbook: Error: Could not find addressbook %s", uid);
} }
...@@ -292,14 +277,11 @@ addressbook_config_fill_book_list() ...@@ -292,14 +277,11 @@ addressbook_config_fill_book_list()
book_data_t *book_data; book_data_t *book_data;
gchar **book_list; gchar **book_list;
if(!abookfactory_is_addressbook_loaded()) { if(!addrbook)
return; return;
}
AddrBookFactory *factory = abookfactory_get_factory();
book_list = dbus_get_addressbook_list(); book_list = dbus_get_addressbook_list();
GSList *books_data = factory->addrbook->get_books_data(book_list); GSList *books_data = addrbook->get_books_data(book_list);
if (!books_data) { if (!books_data) {
DEBUG ("Addressbook: No valid books data (%s:%d)", __FILE__, __LINE__); DEBUG ("Addressbook: No valid books data (%s:%d)", __FILE__, __LINE__);
...@@ -338,7 +320,7 @@ create_addressbook_settings() ...@@ -338,7 +320,7 @@ create_addressbook_settings()
GtkTreeViewColumn *tree_view_column; GtkTreeViewColumn *tree_view_column;
// Load the user value // Load the user value
addressbook_config_load_parameters (&addressbook_config); addressbook_config = addressbook_config_load_parameters();
ret = gtk_vbox_new (FALSE, 10); ret = gtk_vbox_new (FALSE, 10);
gtk_container_set_border_width (GTK_CONTAINER (ret), 10); gtk_container_set_border_width (GTK_CONTAINER (ret), 10);
......
...@@ -67,12 +67,9 @@ void ...@@ -67,12 +67,9 @@ void
addressbook_config_save_parameters (void); addressbook_config_save_parameters (void);
/** /**
* Initialize the address book structure, and retrieve the saved parameters through D-Bus * Return the saved parameters through D-Bus
*
* @param settings The addressbook structure
*/ */
void AddressBook_Config *addressbook_config_load_parameters();
addressbook_config_load_parameters (AddressBook_Config **settings);
gboolean gboolean
addressbook_display (AddressBook_Config *settings, const gchar *field); addressbook_display (AddressBook_Config *settings, const gchar *field);
......
...@@ -285,7 +285,7 @@ create_general_settings () ...@@ -285,7 +285,7 @@ create_general_settings ()
void void
save_configuration_parameters (void) save_configuration_parameters (void)
{ {
if(abookfactory_is_addressbook_loaded()) { if (addrbook) {
// Address book config // Address book config
addressbook_config_save_parameters (); addressbook_config_save_parameters ();
} }
...@@ -410,7 +410,7 @@ show_preferences_dialog () ...@@ -410,7 +410,7 @@ show_preferences_dialog ()
gtk_notebook_append_page (GTK_NOTEBOOK (notebook), tab, gtk_label_new (_ ("Shortcuts"))); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), tab, gtk_label_new (_ ("Shortcuts")));
gtk_notebook_page_num (GTK_NOTEBOOK (notebook), tab); gtk_notebook_page_num (GTK_NOTEBOOK (notebook), tab);
if(abookfactory_is_addressbook_loaded()) { if(addrbook) {
// Addressbook tab // Addressbook tab
tab = create_addressbook_settings (); tab = create_addressbook_settings ();
gtk_notebook_append_page (GTK_NOTEBOOK (notebook), tab, gtk_label_new (_ ("Address Book"))); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), tab, gtk_label_new (_ ("Address Book")));
...@@ -451,7 +451,7 @@ GtkTreeModel* createModel() ...@@ -451,7 +451,7 @@ GtkTreeModel* createModel()
GError *error = NULL; GError *error = NULL;
gint i, nb_entries; gint i, nb_entries;
nb_entries = abookfactory_is_addressbook_loaded() ? 5 : 4; nb_entries = addrbook ? 5 : 4;
store = gtk_list_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT); store = gtk_list_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT);
GtkIconTheme* theme = gtk_icon_theme_get_default(); GtkIconTheme* theme = gtk_icon_theme_get_default();
......
...@@ -37,89 +37,8 @@ ...@@ -37,89 +37,8 @@
#include <glib.h> #include <glib.h>
#include <dlfcn.h> #include <dlfcn.h>
static void handler_async_search(GList *hits, gpointer user_data); AddrBookHandle *addrbook = NULL;
AddrBookFactory addressbookFactory = { .addrbook = NULL };
AddrBookFactory *abookfactory_get_factory(void) {
return &addressbookFactory;
}
gboolean abookfactory_is_addressbook_loaded(void) {
return (addressbookFactory.addrbook != NULL) ? TRUE : FALSE;
}
void abookfactory_init_factory() {
abookfactory_load_module(&addressbookFactory);
}
void abookfactory_scan_directory(AddrBookFactory *factory UNUSED) {
}
void abookfactory_load_module(AddrBookFactory *factory)
{
gchar *plugindir = PLUGINS_DIR;
gchar *pluginpath = g_strdup_printf("%s/libevladdrbook.so", plugindir);
DEBUG("AddressbookFactory: Loading addressbook: %s", pluginpath);
void *handle = dlopen(pluginpath, RTLD_LAZY);
g_free(pluginpath);
if(handle == NULL) {
ERROR("AddressbookFactory: Error: Could not load addressbook");
return;
}
AddrBookHandle *ab = g_malloc(sizeof(AddrBookHandle));
ab->init = dlsym(handle, "addressbook_init");
if(ab->init == NULL)
ERROR("AddressbookFactory: Error: Could not load addressbook_init function");
ab->is_ready = dlsym(handle, "addressbook_is_ready");
if(ab->is_ready == NULL)
ERROR("AddressbookFactory: Error: Could not load addressbook addressbook_is_ready 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");
ab->search = dlsym(handle, "addressbook_search");
if(ab->search == NULL)
ERROR("AddressbookFactory: Error: Could not load addressbook addressbook_search function");
ab->get_books_data = dlsym(handle, "addressbook_get_books_data");
if(ab->get_books_data == NULL)
ERROR("AddressbookFactory: Error: Could not load addressbook addressbook_get_books_data function");
ab->get_book_data_by_uid = dlsym(handle, "addressbook_get_book_data_by_uid");
if(ab->get_book_data_by_uid == NULL)
ERROR("AddressbookFactory: Error: Could not load addressbook addressbook_get_books_data_by_uid function");
ab->set_current_book = dlsym(handle, "addressbook_set_current_book");
if(ab->set_current_book == NULL)
ERROR("AddressbookFactory: Error: Could not load addressbook addressbook_ser_current_book");
ab->set_search_type = dlsym(handle, "addressbook_set_search_type");
if(ab->set_search_type == NULL)
ERROR("AddressbookFactory: Error: Could not load addressbook addressbook_set_search_type");
ab->search_cb = handler_async_search;
DEBUG("AddressbookFactory: Loading done");
factory->addrbook = ab;
}
void
free_hit (Hit *h)
{
g_free (h->name);
g_free (h->phone_business);
g_free (h->phone_home);
g_free (h->phone_mobile);
g_free (h);
}
/** /**
* Callback called after all book have been processed * Callback called after all book have been processed
...@@ -127,52 +46,73 @@ free_hit (Hit *h) ...@@ -127,52 +46,73 @@ free_hit (Hit *h)
static void static void
handler_async_search (GList *hits, gpointer user_data) handler_async_search (GList *hits, gpointer user_data)
{ {
GList *i;
// Retrieve the address book parameters
AddressBook_Config *addressbook_config = user_data; AddressBook_Config *addressbook_config = user_data;
// reset previous results
calltree_reset (contacts); calltree_reset (contacts);
calllist_reset (contacts); calllist_reset (contacts);
for (i = hits; i != NULL; i = i->next) { for (GList *i = hits; i != NULL; i = i->next) {
GdkPixbuf *photo = NULL; GdkPixbuf *photo = NULL;
Hit *entry = i->data; Hit *entry = i->data;
if (!entry) if (!entry)
continue; continue;
// Get the photo
if (addressbook_display (addressbook_config, if (addressbook_display (addressbook_config,
ADDRESSBOOK_DISPLAY_CONTACT_PHOTO)) ADDRESSBOOK_DISPLAY_CONTACT_PHOTO))
photo = entry->photo; photo = entry->photo;
// Create entry for business phone information
if (addressbook_display (addressbook_config, if (addressbook_display (addressbook_config,
ADDRESSBOOK_DISPLAY_PHONE_BUSINESS)) ADDRESSBOOK_DISPLAY_PHONE_BUSINESS))
calllist_add_contact (entry->name, entry->phone_business, calllist_add_contact (entry->name, entry->phone_business,
CONTACT_PHONE_BUSINESS, photo); CONTACT_PHONE_BUSINESS, photo);
// Create entry for home phone information
if (addressbook_display (addressbook_config, if (addressbook_display (addressbook_config,
ADDRESSBOOK_DISPLAY_PHONE_HOME)) ADDRESSBOOK_DISPLAY_PHONE_HOME))
calllist_add_contact (entry->name, entry->phone_home, calllist_add_contact (entry->name, entry->phone_home,
CONTACT_PHONE_HOME, photo); CONTACT_PHONE_HOME, photo);
// Create entry for mobile phone iddnformation
if (addressbook_display (addressbook_config, if (addressbook_display (addressbook_config,
ADDRESSBOOK_DISPLAY_PHONE_MOBILE)) ADDRESSBOOK_DISPLAY_PHONE_MOBILE))
calllist_add_contact (entry->name, entry->phone_mobile, calllist_add_contact (entry->name, entry->phone_mobile,
CONTACT_PHONE_MOBILE, photo); CONTACT_PHONE_MOBILE, photo);
free_hit (entry); g_free (entry->name);
g_free (entry->phone_business);
g_free (entry->phone_home);
g_free (entry->phone_mobile);
g_free (entry);
} }
g_list_free (hits); g_list_free (hits);
gtk_widget_grab_focus(GTK_WIDGET (contacts->view));
}
void abook_init()
{
void *handle = dlopen(PLUGINS_DIR"/libevladdrbook.so", RTLD_LAZY);
if(handle == NULL) {
ERROR("Addressbook: Error: Could not load addressbook");
return;
}
addrbook = g_malloc(sizeof(AddrBookHandle));
#define LOAD(func) do { \
addrbook-> func = dlsym(handle, "addressbook_" #func); \
if (addrbook-> func == NULL) \
ERROR("Addressbook: Couldn't load " # func); \
} while(0)
// Deactivate waiting image
// deactivateWaitingLayer();
LOAD(init);
LOAD(is_ready);
LOAD(is_active);
LOAD(search);
LOAD(get_books_data);
LOAD(get_book_data_by_uid);
LOAD(set_current_book);
LOAD(set_search_type);
gtk_widget_grab_focus (GTK_WIDGET (contacts->view)); addrbook->search_cb = handler_async_search;
} }
...@@ -32,24 +32,10 @@ ...@@ -32,24 +32,10 @@
#ifndef __ADDRBOOKFACTORY_H__ #ifndef __ADDRBOOKFACTORY_H__
#define __ADDRBOOKFACTORY_H__ #define __ADDRBOOKFACTORY_H__
#include <dlfcn.h>
#include <gtk/gtk.h>
#include "addressbook.h" #include "addressbook.h"
typedef struct _addrbookfactory { void abook_init();
gboolean is_loaded;
AddrBookHandle *addrbook;
} AddrBookFactory;
void abookfactory_init_factory(); extern AddrBookHandle *addrbook;
AddrBookFactory *abookfactory_get_factory(void);
gboolean abookfactory_is_addressbook_loaded(void);
void abookfactory_scan_directory(AddrBookFactory *);
void abookfactory_load_module(AddrBookFactory *);
void free_hit(Hit *);
#endif #endif
...@@ -58,14 +58,8 @@ GdkPixbuf *missed_pixbuf = NULL; ...@@ -58,14 +58,8 @@ GdkPixbuf *missed_pixbuf = NULL;
void searchbar_addressbook_activated (GtkEntry *entry, gchar *arg1 UNUSED, gpointer data UNUSED) void searchbar_addressbook_activated (GtkEntry *entry, gchar *arg1 UNUSED, gpointer data UNUSED)
{ {
DEBUG ("Searchbar: Entry activated"); if(addrbook)
addrbook->search(addrbook->search_cb, entry, addressbook_config_load_parameters());
if(abookfactory_is_addressbook_loaded()) {
AddrBookFactory *factory = abookfactory_get_factory();
AddressBook_Config *addressbook_config;
addressbook_config_load_parameters(&addressbook_config);
factory->addrbook->search(factory->addrbook->search_cb, entry, addressbook_config);
}
} }
void searchbar_entry_changed (GtkEntry* entry UNUSED, gchar* arg1 UNUSED, gpointer data UNUSED) void searchbar_entry_changed (GtkEntry* entry UNUSED, gchar* arg1 UNUSED, gpointer data UNUSED)
...@@ -82,14 +76,12 @@ void searchbar_entry_changed (GtkEntry* entry UNUSED, gchar* arg1 UNUSED, gpoint ...@@ -82,14 +76,12 @@ void searchbar_entry_changed (GtkEntry* entry UNUSED, gchar* arg1 UNUSED, gpoint
static void cbox_changed_cb (GtkWidget *widget, gpointer user_data UNUSED) static void cbox_changed_cb (GtkWidget *widget, gpointer user_data UNUSED)
{ {
if(abookfactory_is_addressbook_loaded()) { if(!addrbook)
DEBUG("Searchbar: Set new addressbook"); return;
AddrBookFactory *factory = abookfactory_get_factory();
factory->addrbook->set_current_book (gtk_combo_box_get_active_text (GTK_COMBO_BOX (widget))); addrbook->set_current_book (gtk_combo_box_get_active_text (GTK_COMBO_BOX (widget)));
AddressBook_Config *addressbook_config; AddressBook_Config *addressbook_config = addressbook_config_load_parameters();
addressbook_config_load_parameters(&addressbook_config); addrbook->search(addrbook->search_cb, GTK_ENTRY(addressbookentry), addressbook_config);
factory->addrbook->search(factory->addrbook->search_cb, GTK_ENTRY(addressbookentry), addressbook_config);
}
} }
void set_focus_on_addressbook_searchbar () void set_focus_on_addressbook_searchbar ()
...@@ -105,10 +97,8 @@ void update_searchbar_addressbook_list() ...@@ -105,10 +97,8 @@ void update_searchbar_addressbook_list()
book_data_t *book_data; book_data_t *book_data;
GSList *books_data = NULL; GSList *books_data = NULL;
if(abookfactory_is_addressbook_loaded()) { if (addrbook)
AddrBookFactory *factory = abookfactory_get_factory(); books_data = addrbook->get_books_data(dbus_get_addressbook_list());
books_data = factory->addrbook->get_books_data(dbus_get_addressbook_list());
}
if(books_data == NULL) { if(books_data == NULL) {
ERROR("Searchbar: No books data found"); ERROR("Searchbar: No books data found");
...@@ -148,16 +138,15 @@ void update_searchbar_addressbook_list() ...@@ -148,16 +138,15 @@ void update_searchbar_addressbook_list()
} }
} }
if(abookfactory_is_addressbook_loaded()) { if(addrbook) {
AddrBookFactory *factory = abookfactory_get_factory();
if (activeIsSet) { if (activeIsSet) {
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (cbox), &activeIter); gtk_combo_box_set_active_iter (GTK_COMBO_BOX (cbox), &activeIter);
factory->addrbook->set_current_book(activeText); addrbook->set_current_book(activeText);
} }
else { else {
gtk_combo_box_set_active (GTK_COMBO_BOX (cbox), 0); gtk_combo_box_set_active (GTK_COMBO_BOX (cbox), 0);
gtk_combo_box_get_active_text(GTK_COMBO_BOX(cbox)); gtk_combo_box_get_active_text(GTK_COMBO_BOX(cbox));
factory->addrbook->set_current_book(gtk_combo_box_get_active_text(GTK_COMBO_BOX(cbox))); addrbook->set_current_book(gtk_combo_box_get_active_text(GTK_COMBO_BOX(cbox)));
} }
} }
...@@ -169,9 +158,7 @@ void update_searchbar_addressbook_list() ...@@ -169,9 +158,7 @@ void update_searchbar_addressbook_list()
static void select_search_type (GtkWidget *item, GtkEntry *entry UNUSED) static void select_search_type (GtkWidget *item, GtkEntry *entry UNUSED)
{ {
if(abookfactory_is_addressbook_loaded()) { if(addrbook) {
AddrBookFactory *factory = abookfactory_get_factory();
DEBUG ("Searchbar: %s", gtk_menu_item_get_label (GTK_MENU_ITEM (item))); DEBUG ("Searchbar: %s", gtk_menu_item_get_label (GTK_MENU_ITEM (item)));
gtk_entry_set_icon_tooltip_text (GTK_ENTRY (addressbookentry), GTK_ENTRY_ICON_PRIMARY, gtk_entry_set_icon_tooltip_text (GTK_ENTRY (addressbookentry), GTK_ENTRY_ICON_PRIMARY,
...@@ -179,18 +166,17 @@ static void select_search_type (GtkWidget *item, GtkEntry *entry UNUSED) ...@@ -179,18 +166,17 @@ static void select_search_type (GtkWidget *item, GtkEntry *entry UNUSED)
if (g_strcmp0 ("Search is", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) { if (g_strcmp0 ("Search is", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) {
factory->addrbook->set_search_type(ABOOK_QUERY_IS); addrbook->set_search_type(ABOOK_QUERY_IS);
} }
else if (g_strcmp0 ("Search begins with", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) { else if (g_strcmp0 ("Search begins with", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) {
factory->addrbook->set_search_type(ABOOK_QUERY_BEGINS_WITH); addrbook->set_search_type(ABOOK_QUERY_BEGINS_WITH);
} }
else if (g_strcmp0 ("Search contains", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) { else if (g_strcmp0 ("Search contains", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) {
factory->addrbook->set_search_type(ABOOK_QUERY_CONTAINS); addrbook->set_search_type(ABOOK_QUERY_CONTAINS);
} }
AddressBook_Config *addressbook_config; AddressBook_Config *addressbook_config = addressbook_config_load_parameters();
addressbook_config_load_parameters(&addressbook_config); addrbook->search (addrbook->search_cb, GTK_ENTRY (addressbookentry), addressbook_config);
factory->addrbook->search (factory->addrbook->search_cb, GTK_ENTRY (addressbookentry), addressbook_config);
} }
} }
...@@ -388,19 +374,16 @@ GtkWidget* contacts_searchbar_new () ...@@ -388,19 +374,16 @@ GtkWidget* contacts_searchbar_new ()
liststore = gtk_list_store_new (1,G_TYPE_STRING); liststore = gtk_list_store_new (1,G_TYPE_STRING);
// Create combo box to select current addressbook // Create combo box to select current addressbook
if(!abookfactory_is_addressbook_loaded()) { if(!addrbook)
return NULL; return NULL;
}
book_list = dbus_get_addressbook_list(); book_list = dbus_get_addressbook_list();
AddrBookFactory *factory = abookfactory_get_factory(); addrbook->init(book_list);
factory->addrbook->init(book_list);
GSList *book_list_iterator; GSList *book_list_iterator;
book_data_t *book_data; book_data_t *book_data;
GSList *books_data = factory->addrbook->get_books_data(book_list); GSList *books_data = addrbook->get_books_data(book_list);
// Populate menu // Populate menu
count = 0; count = 0;
......
...@@ -1762,12 +1762,9 @@ dbus_get_audio_manager (void) ...@@ -1762,12 +1762,9 @@ dbus_get_audio_manager (void)
GHashTable* GHashTable*
dbus_get_addressbook_settings (void) dbus_get_addressbook_settings (void)
{ {
GError *error = NULL; GError *error = NULL;
GHashTable *results = NULL; GHashTable *results = NULL;
//DEBUG ("Calling org_sflphone_SFLphone_ConfigurationManager_get_addressbook_settings");
org_sflphone_SFLphone_ConfigurationManager_get_addressbook_settings ( org_sflphone_SFLphone_ConfigurationManager_get_addressbook_settings (
configurationManagerProxy, &results, &error); configurationManagerProxy, &results, &error);
......
...@@ -114,7 +114,7 @@ update_actions() ...@@ -114,7 +114,7 @@ update_actions()
g_object_ref(recordWidget_); g_object_ref(recordWidget_);
g_object_ref(holdToolbar_); g_object_ref(holdToolbar_);
g_object_ref(offHoldToolbar_); g_object_ref(offHoldToolbar_);
if (abookfactory_is_addressbook_loaded()) if (addrbook)
g_object_ref(contactButton_); g_object_ref(contactButton_);
g_object_ref(historyButton_); g_object_ref(historyButton_);
...@@ -127,7 +127,7 @@ update_actions() ...@@ -127,7 +127,7 @@ update_actions()
remove_from_toolbar(transferToolbar_); remove_from_toolbar(transferToolbar_);
remove_from_toolbar(historyButton_); remove_from_toolbar(historyButton_);
if (abookfactory_is_addressbook_loaded()) if (addrbook)
remove_from_toolbar(contactButton_); remove_from_toolbar(contactButton_);
remove_from_toolbar(voicemailToolbar_); remove_from_toolbar(voicemailToolbar_);
...@@ -140,11 +140,11 @@ update_actions() ...@@ -140,11 +140,11 @@ update_actions()
gtk_widget_set_sensitive(recordWidget_, FALSE); gtk_widget_set_sensitive(recordWidget_, FALSE);
gtk_action_set_sensitive(copyAction_, FALSE); gtk_action_set_sensitive(copyAction_, FALSE);
if (abookfactory_is_addressbook_loaded()) if (addrbook)
gtk_widget_set_sensitive(contactButton_, FALSE); gtk_widget_set_sensitive(contactButton_, FALSE);
gtk_widget_set_sensitive(historyButton_, FALSE); gtk_widget_set_sensitive(historyButton_, FALSE);
if (abookfactory_is_addressbook_loaded()) if (addrbook)
gtk_widget_set_tooltip_text(contactButton_, _("No address book selected")); gtk_widget_set_tooltip_text(contactButton_, _("No address book selected"));
remove_from_toolbar(holdToolbar_); remove_from_toolbar(holdToolbar_);
...@@ -163,16 +163,14 @@ update_actions() ...@@ -163,16 +163,14 @@ update_actions()
} }
// If addressbook support has been enabled and all addressbooks are loaded, display the icon // If addressbook support has been enabled and all addressbooks are loaded, display the icon
if (abookfactory_is_addressbook_loaded()) { if (addrbook) {
AddrBookFactory *bookFactory = abookfactory_get_factory(); AddressBook_Config *addressbook_config = addressbook_config_load_parameters();
AddressBook_Config *addressbook_config;
addressbook_config_load_parameters(&addressbook_config);
if (addressbook_config->enable && bookFactory->addrbook->is_ready()) { if (addressbook_config->enable && addrbook->is_ready()) {
gtk_toolbar_insert(GTK_TOOLBAR(toolbar_), GTK_TOOL_ITEM(contactButton_), -1); gtk_toolbar_insert(GTK_TOOLBAR(toolbar_), GTK_TOOL_ITEM(contactButton_), -1);
// Make the icon clickable only if at least one address book is active // Make the icon clickable only if at least one address book is active
if (bookFactory->addrbook->is_active()) { if (addrbook->is_active()) {
gtk_widget_set_sensitive(contactButton_, TRUE); gtk_widget_set_sensitive(contactButton_, TRUE);
gtk_widget_set_tooltip_text(contactButton_, _("Address book")); gtk_widget_set_tooltip_text(contactButton_, _("Address book"));
} }
...@@ -1041,7 +1039,7 @@ static const GtkToggleActionEntry toggle_menu_entries[] = { ...@@ -1041,7 +1039,7 @@ static const GtkToggleActionEntry toggle_menu_entries[] = {
GtkUIManager *uimanager_new(void) GtkUIManager *uimanager_new(void)
{ {
gint nb_entries = abookfactory_is_addressbook_loaded() ? 7 : 6; gint nb_entries = addrbook ? 7 : 6;
GtkWidget *window = get_main_window(); GtkWidget *window = get_main_window();
GtkUIManager *ui_manager = gtk_ui_manager_new(); GtkUIManager *ui_manager = gtk_ui_manager_new();
...@@ -1065,7 +1063,7 @@ GtkUIManager *uimanager_new(void) ...@@ -1065,7 +1063,7 @@ GtkUIManager *uimanager_new(void)
g_free(path); g_free(path);
if (abookfactory_is_addressbook_loaded()) { if (addrbook) {
// These actions must be loaded dynamically and is not specified in the xml description // These actions must be loaded dynamically and is not specified in the xml description
gtk_ui_manager_add_ui(ui_manager, manager_id, "/ViewMenu", gtk_ui_manager_add_ui(ui_manager, manager_id, "/ViewMenu",
"Addressbook", "Addressbook",
...@@ -1581,7 +1579,7 @@ create_toolbar_actions(GtkUIManager *ui_manager) ...@@ -1581,7 +1579,7 @@ create_toolbar_actions(GtkUIManager *ui_manager)
"/ToolbarActions/StartPlaybackRecordToolbar"); "/ToolbarActions/StartPlaybackRecordToolbar");
stopRecordWidget_ = gtk_ui_manager_get_widget(ui_manager, stopRecordWidget_ = gtk_ui_manager_get_widget(ui_manager,
"/ToolbarActions/StopPlaybackRecordToolbar"); "/ToolbarActions/StopPlaybackRecordToolbar");
if (abookfactory_is_addressbook_loaded()) if (addrbook)
contactButton_ = gtk_ui_manager_get_widget(ui_manager, "/ToolbarActions/AddressbookToolbar"); contactButton_ = gtk_ui_manager_get_widget(ui_manager, "/ToolbarActions/AddressbookToolbar");
// Set the handler ID for the transfer // Set the handler ID for the transfer
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment