diff --git a/sflphone-client-gnome/configure.ac b/sflphone-client-gnome/configure.ac index 94ff05c673d7508e60cf4aff7f0ffd5ed91d4a74..81c1f5cc4b066f407ed42a79db6969f6839dd524 100644 --- a/sflphone-client-gnome/configure.ac +++ b/sflphone-client-gnome/configure.ac @@ -61,15 +61,6 @@ PKG_CHECK_MODULES([LIBEDATASERVER], [libedataserver-1.2 >= 2.32], [AC_DEFINE([LI PKG_CHECK_MODULES(LIBGNOMEUI, libgnomeui-2.0) PKG_CHECK_MODULES(GNOMEDOCUTILS, gnome-doc-utils) -AC_SUBST(SFLGTK_CFLAGS) -AC_SUBST(SFLGLIB_CFLAGS) -AC_SUBST(WEBKIT_CFLAGS) -AC_SUBST(LIBEBOOK_CFLAGS) -AC_SUBST(LIBEDATASERVER_CFLAGS) -AC_SUBST(LIBEDATASERVERUI_CFLAGS) -AC_SUBST(LIBGNOMEUI_CFLAGS) -AC_SUBST(GNOMEDOCUTILS) - AC_SUBST(SFLGTK_LIBS) AC_SUBST(SFLGLIB_LIBS) AC_SUBST(WEBKIT_LIBS) diff --git a/sflphone-client-gnome/src/actions.c b/sflphone-client-gnome/src/actions.c index 38c5e8ba4d176a9cc5cbafdedddd5d4af054e367..4115f0e792624b5b9e1d72e2a6a255a40015abe4 100644 --- a/sflphone-client-gnome/src/actions.c +++ b/sflphone-client-gnome/src/actions.c @@ -317,11 +317,15 @@ void sflphone_fill_account_list (void) gboolean sflphone_init (GError **error) { - if (!dbus_connect (error)) + if (!dbus_connect (error)) { return FALSE; + } - if (!dbus_register (getpid (), "Gtk+ Client", error)) + if (!dbus_register (getpid (), "Gtk+ Client", error)) { return FALSE; + } + + abookfactory_init_factory(); // Init icons factory init_icon_factory (); diff --git a/sflphone-client-gnome/src/config/Makefile.am b/sflphone-client-gnome/src/config/Makefile.am index 871c75f87c05e26434a779bf0b5c5acd513bfeab..1df0702954054bf6fc8310fd0ed36a8eef624416 100644 --- a/sflphone-client-gnome/src/config/Makefile.am +++ b/sflphone-client-gnome/src/config/Makefile.am @@ -15,17 +15,17 @@ libconfig_la_SOURCES = \ audioconf.c \ utils.c -libconfig_la_LDFLAGS = @DBUSGLIB_LDFLAGS@ @LIBNOTIFY_LDFLAGS@ \ - @SFLGTK_LDFLAGS@ @SFLGLIB_LDFLAGS@ @WEBKIT_LDFLAGS@ @LIBEBOOK_LDFLAGS@ \ - @LIBEDATASERVER_LDFLAGS@ @LIBEDATASERVERUI_LDFLAGS@ @LIBGNOMEUI_LDFLAGS@ \ - @GNOMEDOCUTILS_LDFLAGS@ +libconfig_la_LDFLAGS = $(DBUSGLIB_LDFLAGS) $(LIBNOTIFY_LDFLAGS) \ + $(SFLGTK_LDFLAGS) $(SFLGLIB_LDFLAGS) $(WEBKIT_LDFLAGS) $(LIBEBOOK_LDFLAGS) \ + $(LIBEDATASERVER_LDFLAGS) $(LIBEDATASERVERUI_LDFLAGS) $(LIBGNOMEUI_LDFLAGS) \ + $(GNOMEDOCUTILS_LDFLAGS) -libconfig_la_LIBADD = @DBUSGLIB_LIBS@ @LIBNOTIFY_LIBSI@ \ - @SFLGTK_LIBS@ @SFLGLIB_LIBS@ @WEBKIT_LIBS@ @LIBEBOOK_LIBS@ \ - @LIBEDATASERVER_LIBS@ @LIBEDATASERVERUI_LIBS@ @LIBGNOMEUI_LIBS@ \ - @GNOMEDOCUTILS_LIBS@ +libconfig_la_LIBADD = $(DBUSGLIB_LIBS) $(LIBNOTIFY_LIBSI) \ + $(SFLGTK_LIBS) $(SFLGLIB_LIBS) $(WEBKIT_LIBS) $(LIBEBOOK_LIBS) \ + $(LIBEDATASERVER_LIBS) $(LIBEDATASERVERUI_LIBS) $(LIBGNOMEUI_LIBS) \ + $(GNOMEDOCUTILS_LIBS) -libconfig_la_CFLAGS = @DBUSGLIB_CFLAGS@ @LIBNOTIFY_CFLAGS@ \ - @SFLGTK_CFLAGS@ @SFLGLIB_CFLAGS@ @WEBKIT_CFLAGS@ @LIBEBOOK_CFLAGS@ \ - @LIBEDATASERVER_CFLAGS@ @LIBEDATASERVERUI_CFLAGS@ @LIBGNOMEUI_CFLAGS@ \ - @GNOMEDOCUTILS_CFLAGS@ +libconfig_la_CFLAGS = $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) \ + $(SFLGTK_CFLAGS) $(SFLGLIB_CFLAGS) $(WEBKIT_CFLAGS) $(LIBEBOOK_CFLAGS) \ + $(LIBEDATASERVER_CFLAGS) $(LIBEDATASERVERUI_CFLAGS) $(LIBGNOMEUI_CFLAGS) \ + $(GNOMEDOCUTILS_CFLAGS) diff --git a/sflphone-client-gnome/src/config/addressbook-config.c b/sflphone-client-gnome/src/config/addressbook-config.c index f2da4d5a28e5fca7455b70851ac8d40000b0cf65..7400612b485860c9c5231e4be39374b428d5ff1f 100644 --- a/sflphone-client-gnome/src/config/addressbook-config.c +++ b/sflphone-client-gnome/src/config/addressbook-config.c @@ -30,7 +30,8 @@ #include "addressbook-config.h" #include "searchbar.h" -#include <contacts/addressbook/eds.h> +#include "contacts/addrbookfactory.h" +#include "contacts/addressbook/eds.h" #include <string.h> #include <stdlib.h> @@ -209,6 +210,10 @@ addressbook_config_book_active_toggled ( gchar* name; gchar* uid; + if(!abookfactory_is_addressbook_loaded()) { + return; + } + // Get path of clicked book active toggle box treePath = gtk_tree_path_new_from_string (path); @@ -217,6 +222,8 @@ addressbook_config_book_active_toggled ( return; } + AddrBookFactory *factory = abookfactory_get_factory(); + gtk_tree_model_get_iter (model, &iter, treePath); // Get active value at iteration @@ -232,7 +239,7 @@ addressbook_config_book_active_toggled ( gtk_tree_path_free (treePath); // Update current memory stored books data - books_get_book_data_by_uid (uid)->active = active; + // factory->addrbook->get_book_data_by_uid (uid)->active = active; // Save data @@ -279,7 +286,14 @@ addressbook_config_fill_book_list() GSList *book_list_iterator; GtkListStore *store; book_data_t *book_data; - GSList *books_data = addressbook_get_books_data(); + + if(!abookfactory_is_addressbook_loaded()) { + return; + } + + AddrBookFactory *factory = abookfactory_get_factory(); + + GSList *books_data = factory->addrbook->get_books_data(); if (!books_data) { DEBUG ("Addressbook: No valid books data (%s:%d)", __FILE__, __LINE__); diff --git a/sflphone-client-gnome/src/config/addressbook-config.h b/sflphone-client-gnome/src/config/addressbook-config.h index 78831f6780ede793cf731b6586c0fb1ed283df7d..00faa14c0f44f8c3d3a4a6254cc21c1f23a6d471 100644 --- a/sflphone-client-gnome/src/config/addressbook-config.h +++ b/sflphone-client-gnome/src/config/addressbook-config.h @@ -35,7 +35,7 @@ #include <glib/gtypes.h> #include "actions.h" -#include <utils.h> +#include "utils.h" G_BEGIN_DECLS diff --git a/sflphone-client-gnome/src/config/preferencesdialog.c b/sflphone-client-gnome/src/config/preferencesdialog.c index 53f449959404c04fb005666f8f16ae591f553076..f0ce15bf31fd5203f5097e9fec22913d431e72a6 100644 --- a/sflphone-client-gnome/src/config/preferencesdialog.c +++ b/sflphone-client-gnome/src/config/preferencesdialog.c @@ -37,6 +37,7 @@ #include <string.h> #include "eel-gconf-extensions.h" +#include "addrbookfactory.h" #include "accountconfigdialog.h" #include "addressbook-config.h" #include "shortcuts-config.h" @@ -282,9 +283,11 @@ create_general_settings () void save_configuration_parameters (void) { + if(abookfactory_is_addressbook_loaded()) { + // Address book config + addressbook_config_save_parameters (); + } - // Address book config - addressbook_config_save_parameters (); hooks_save_parameters (); // History config @@ -389,26 +392,17 @@ show_preferences_dialog () // General settings tab tab = create_general_settings (); - gtk_notebook_append_page (GTK_NOTEBOOK (notebook), tab, gtk_label_new ( - _ ("General"))); + gtk_notebook_append_page (GTK_NOTEBOOK (notebook), tab, gtk_label_new (_ ("General"))); gtk_notebook_page_num (GTK_NOTEBOOK (notebook), tab); // Audio tab tab = create_audio_configuration (); - gtk_notebook_append_page (GTK_NOTEBOOK (notebook), tab, gtk_label_new ( - _ ("Audio"))); - gtk_notebook_page_num (GTK_NOTEBOOK (notebook), tab); - - // Addressbook tab - 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 (_ ("Audio"))); gtk_notebook_page_num (GTK_NOTEBOOK (notebook), tab); // Hooks tab tab = create_hooks_settings (); - gtk_notebook_append_page (GTK_NOTEBOOK (notebook), tab, gtk_label_new ( - _ ("Hooks"))); + gtk_notebook_append_page (GTK_NOTEBOOK (notebook), tab, gtk_label_new (_ ("Hooks"))); gtk_notebook_page_num (GTK_NOTEBOOK (notebook), tab); // Shortcuts tab @@ -416,6 +410,13 @@ show_preferences_dialog () gtk_notebook_append_page (GTK_NOTEBOOK (notebook), tab, gtk_label_new (_ ("Shortcuts"))); gtk_notebook_page_num (GTK_NOTEBOOK (notebook), tab); + if(abookfactory_is_addressbook_loaded()) { + // Addressbook tab + tab = create_addressbook_settings (); + gtk_notebook_append_page (GTK_NOTEBOOK (notebook), tab, gtk_label_new (_ ("Address Book"))); + gtk_notebook_page_num (GTK_NOTEBOOK (notebook), tab); + } + // By default, general settings gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 0); // Highlight the corresponding icon @@ -432,37 +433,40 @@ show_preferences_dialog () return result; } +#define NB_MAX_ENTRIES 5 GtkTreeModel* createModel() -{ - - browser_t browser_entries[5] = { +{ + browser_t browser_entries_full[NB_MAX_ENTRIES] = { {_ ("General"), "preferences-system", 0}, {_ ("Audio"), "multimedia-volume-control", 1}, - {_ ("Address Book"), "address-book-new", 2}, - {_ ("Hooks"), "gnome-globe", 3}, - {_ ("Shortcuts"), "preferences-desktop-keyboard", 4} + {_ ("Hooks"), "gnome-globe", 2}, + {_ ("Shortcuts"), "preferences-desktop-keyboard", 3}, + {_ ("Address Book"), "address-book-new", 4}, }; GdkPixbuf *pixbuf; GtkTreeIter iter; GtkListStore *store; GError *error = NULL; - gint i; + gint i, nb_entries; + + nb_entries = abookfactory_is_addressbook_loaded() ? 5 : 4; store = gtk_list_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT); GtkIconTheme* theme = gtk_icon_theme_get_default(); - for (i = 0; i < 5; i++) { + + for (i = 0; i < nb_entries; i++) { gtk_list_store_append (store, &iter); - pixbuf = gtk_icon_theme_load_icon (theme, browser_entries[i].icon_name, 48, 0, &error); + pixbuf = gtk_icon_theme_load_icon (theme, browser_entries_full[i].icon_name, 48, 0, &error); gtk_list_store_set (store, &iter, PIXBUF_COL, pixbuf, - TEXT_COL, browser_entries[i].icon_descr, - PAGE_NUMBER, browser_entries[i].page_number, + TEXT_COL, browser_entries_full[i].icon_descr, + PAGE_NUMBER, browser_entries_full[i].page_number, -1); if (pixbuf != NULL) { diff --git a/sflphone-client-gnome/src/contacts/Makefile.am b/sflphone-client-gnome/src/contacts/Makefile.am index b55c6d194c9ef9f03d42360ef6deede5b37215e9..025bbd14eb69184b7319347a0af7cc4deec2f23e 100644 --- a/sflphone-client-gnome/src/contacts/Makefile.am +++ b/sflphone-client-gnome/src/contacts/Makefile.am @@ -10,17 +10,17 @@ libcontacts_la_SOURCES = \ calltab.c \ calltree.c \ history.c \ - addressbook.c \ + addrbookfactory.c \ conferencelist.c -libcontacts_la_LDFLAGS = @DBUSGLIB_LDFLAGS@ @LIBNOTIFY_LDFLAGS@ \ - @SFLGTK_LDFLAGS@ @SFLGLIB_LDFLAGS@ @WEBKIT_LDFLAGS@ @LIBEBOOK_LDFLAGS@ \ - @LIBEDATASERVER_LDFLAGS@ @LIBEDATASERVERUI_LDFLAGS@ @LIBGNOMEUI_LDFLAGS@ \ - @GNOMEDOCUTILS_LDFLAGS@ +libcontacts_la_LDFLAGS = $(DBUSGLIB_LDFLAGS) $(LIBNOTIFY_LDFLAGS) \ + $(SFLGTK_LDFLAGS) $(SFLGLIB_LDFLAGS) $(WEBKIT_LDFLAGS) $(LIBEBOOK_LDFLAGS) \ + $(LIBEDATASERVER_LDFLAGS) $(LIBEDATASERVERUI_LDFLAGS) $(LIBGNOMEUI_LDFLAGS) \ + $(GNOMEDOCUTILS_LDFLAGS) -libcontacts_la_CFLAGS = @DBUSGLIB_CFLAGS@ @LIBNOTIFY_CFLAGS@ \ - @SFLGTK_CFLAGS@ @SFLGLIB_CFLAGS@ @WEBKIT_CFLAGS@ @LIBEBOOK_CFLAGS@ \ - @LIBEDATASERVER_CFLAGS@ @LIBEDATASERVERUI_CFLAGS@ @LIBGNOMEUI_CFLAGS@ \ - @GNOMEDOCUTILS_CFLAGS@ +libcontacts_la_CFLAGS = $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) \ + $(SFLGTK_CFLAGS) $(SFLGLIB_CFLAGS) $(WEBKIT_CFLAGS) $(LIBEBOOK_CFLAGS) \ + $(LIBEDATASERVER_CFLAGS) $(LIBEDATASERVERUI_CFLAGS) $(LIBGNOMEUI_CFLAGS) \ + $(GNOMEDOCUTILS_CFLAGS) -libcontacts_la_LIBADD = ./addressbook/libaddressbook.la +libcontacts_la_LIBADD = ./addressbook/libevladdrbook.so diff --git a/sflphone-client-gnome/src/contacts/addrbookfactory.c b/sflphone-client-gnome/src/contacts/addrbookfactory.c new file mode 100644 index 0000000000000000000000000000000000000000..d53412db808da8581259efe23e4f9d31a59ef53d --- /dev/null +++ b/sflphone-client-gnome/src/contacts/addrbookfactory.c @@ -0,0 +1,116 @@ +/* + * Copyright (C) 2004, 2005, 2006, 2009, 2008, 2009, 2010, 2011 Savoir-Faire Linux Inc. + * Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Additional permission under GNU GPL version 3 section 7: + * + * If you modify this program, or any covered work, by linking or + * combining it with the OpenSSL project's OpenSSL library (or a + * modified version of that library), containing parts covered by the + * terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc. + * grants you additional permission to convey the resulting work. + * Corresponding Source for a non-source form of such a combination + * shall include the source code for the parts of OpenSSL used as well + * as that of the covered work. + */ + +#include "addrbookfactory.h" + +#include <glib.h> +#include <dlfcn.h> + +AddrBookFactory addressbookFactory = {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) { + +} + +void abookfactory_load_module(AddrBookFactory *factory) { + + AddrBookHandle *ab; + void *handle; + + DEBUG("AddressbookFactory: Loading addressbook"); + + ab = g_malloc(sizeof(AddrBookHandle)); + + handle = dlopen("./src/contacts/addressbook/libevladdrbook.so", RTLD_LAZY); + if(handle == NULL) { + ERROR("AddressbookFactory: Error: Could not load addressbook"); + return; + } + + 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_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"); + } + + 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"); + } + + DEBUG("AddressbookFactory: Loading done"); + factory->addrbook = ab; +} diff --git a/sflphone-client-gnome/src/contacts/addrbookfactory.h b/sflphone-client-gnome/src/contacts/addrbookfactory.h new file mode 100644 index 0000000000000000000000000000000000000000..9df1cf534b19d8b9ae245c6a12781a7f8944d730 --- /dev/null +++ b/sflphone-client-gnome/src/contacts/addrbookfactory.h @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2004, 2005, 2006, 2009, 2008, 2009, 2010, 2011 Savoir-Faire Linux Inc. + * Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Additional permission under GNU GPL version 3 section 7: + * + * If you modify this program, or any covered work, by linking or + * combining it with the OpenSSL project's OpenSSL library (or a + * modified version of that library), containing parts covered by the + * terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc. + * grants you additional permission to convey the resulting work. + * Corresponding Source for a non-source form of such a combination + * shall include the source code for the parts of OpenSSL used as well + * as that of the covered work. + */ + + +#ifndef __ADDRBOOKFACTORY_H__ +#define __ADDRBOOKFACTORY_H__ + +#include <dlfcn.h> +#include <gtk/gtk.h> +#include "addressbook.h" + + +typedef struct _addrbookfactory { + gboolean is_loaded; + AddrBookHandle *addrbook; +} AddrBookFactory; + +void abookfactory_init_factory(); + +AddrBookFactory *abookfactory_get_factory(void); + +gboolean abookfactory_is_addressbook_loaded(void); + +void abookfactory_scan_directory(AddrBookFactory *); + +void abookfactory_load_module(AddrBookFactory *); + +#endif diff --git a/sflphone-client-gnome/src/contacts/addressbook.h b/sflphone-client-gnome/src/contacts/addressbook.h index e44df3a26e006e3c907125340fb53d8c7650200a..b9dd476b8c3c19b8ce9b1977b31be20e80d68ec1 100644 --- a/sflphone-client-gnome/src/contacts/addressbook.h +++ b/sflphone-client-gnome/src/contacts/addressbook.h @@ -1,6 +1,7 @@ /* * Copyright (C) 2004, 2005, 2006, 2009, 2008, 2009, 2010, 2011 Savoir-Faire Linux Inc. * Author: Julien Bonjean <julien.bonjean@savoirfairelinux.com> + * Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -40,35 +41,55 @@ #include <gtk/gtk.h> #include <addressbook/eds.h> +typedef enum {ABOOK_QUERY_IS, ABOOK_QUERY_BEGINS_WITH, ABOOK_QUERY_CONTAINS} AddrbookSearchType; + +typedef struct _addrbookhandle { + void (*init) (void); + gboolean (*is_ready) (void); + gboolean (*is_enabled) (void); + gboolean (*is_active) (void); + void (*search) (GtkEntry*); + GSList *(*get_books_data)(void); + GSList *(*get_book_data_by_uid)(gchar *); + void (*set_current_book)(gchar *); + void (*set_search_type)(AddrbookSearchType); +} AddrBookHandle; + +/** + * Initialize addressbook + */ +void addressbook_init(); + /** * Return addressbook state */ -gboolean -addressbook_is_ready(); +gboolean addressbook_is_ready(); /** * Return addressbook state */ -gboolean -addressbook_is_enabled(); +gboolean addressbook_is_enabled(); /** * Return if at least one addressbook is active */ -gboolean -addressbook_is_active(); +gboolean addressbook_is_active(); /** * Perform a search in addressbook */ -void -addressbook_search (GtkEntry*); +void addressbook_search (GtkEntry*); /** - * Initialize addressbook + * Get a list of addressbook */ -void -addressbook_init(); +GSList *addressbook_get_books_data(void); + +GSList *addressbook_get_book_data_by_uid(gchar *); + +void addressbook_set_current_book(void); + +void addressbook_set_search_type(AddrbookSearchType); #endif diff --git a/sflphone-client-gnome/src/contacts/addressbook/Makefile.am b/sflphone-client-gnome/src/contacts/addressbook/Makefile.am index bdf18ba57c95b30a541fc529fcdc5e707e4ba3dc..649cc200a1a4bb34748251f1a66c7a41283588c2 100644 --- a/sflphone-client-gnome/src/contacts/addressbook/Makefile.am +++ b/sflphone-client-gnome/src/contacts/addressbook/Makefile.am @@ -1,15 +1,19 @@ include ../../../globals.mak -noinst_LTLIBRARIES = libaddressbook.la +noinst_PROGRAMS = libevladdrbook.so -libaddressbook_la_SOURCES = eds.c +libevladdrbook_so_SOURCES = eds.c addressbook.c -libaddressbook_la_LDFLAGS = @DBUSGLIB_LDFLAGS@ @LIBNOTIFY_LDFLAGS@ \ - @SFLGTK_LDFLAGS@ @SFLGLIB_LDFLAGS@ @WEBKIT_LDFLAGS@ @LIBEBOOK_LDFLAGS@ \ - @LIBEDATASERVER_LDFLAGS@ @LIBEDATASERVERUI_LDFLAGS@ @LIBGNOMEUI_LDFLAGS@ \ - @GNOMEDOCUTILS_LDFLAGS@ +libevladdrbook_so_LDFLAGS = --shared $(SFLGLIB_LDFLAGS) $(SFLGTK_CFLAGS) $(LIBEDATASERVER_LDFLAGS) $(LIBEDATASERVERUI_LDFLAGS) $(DBUSGLIB_LDFLAGS) + +# @DBUSGLIB_LDFLAGS@ @LIBNOTIFY_LDFLAGS@ \ +# @SFLGTK_LDFLAGS@ @SFLGLIB_LDFLAGS@ @WEBKIT_LDFLAGS@ @LIBEBOOK_LDFLAGS@ \ +# @LIBEDATASERVER_LDFLAGS@ @LIBEDATASERVERUI_LDFLAGS@ @LIBGNOMEUI_LDFLAGS@ \ +# @GNOMEDOCUTILS_LDFLAGS@ -libaddressbook_la_CFLAGS = @DBUSGLIB_CFLAGS@ @LIBNOTIFY_CFLAGS@ \ - @SFLGTK_CFLAGS@ @SFLGLIB_CFLAGS@ @WEBKIT_CFLAGS@ @LIBEBOOK_CFLAGS@ \ - @LIBEDATASERVER_CFLAGS@ @LIBEDATASERVERUI_CFLAGS@ @LIBGNOMEUI_CFLAGS@ \ - @GNOMEDOCUTILS_CFLAGS@ +libevladdrbook_so_CFLAGS = -fPIC -g -Wall $(SFLGLIB_CFLAGS) $(SFLGTK_CFLAGS) $(LIBEDATASERVER_CFLAGS) $(LIBEDATASERVERUI_CFLAGS) $(DBUSGLIB_CFLAGS) + +# @DBUSGLIB_CFLAGS@ @LIBNOTIFY_CFLAGS@ \ +# @SFLGTK_CFLAGS@ @SFLGLIB_CFLAGS@ @WEBKIT_CFLAGS@ @LIBEBOOK_CFLAGS@ \ +# @LIBEDATASERVER_CFLAGS@ @LIBEDATASERVERUI_CFLAGS@ @LIBGNOMEUI_CFLAGS@ \ +# @GNOMEDOCUTILS_CFLAGS@ diff --git a/sflphone-client-gnome/src/contacts/addressbook.c b/sflphone-client-gnome/src/contacts/addressbook/addressbook.c similarity index 85% rename from sflphone-client-gnome/src/contacts/addressbook.c rename to sflphone-client-gnome/src/contacts/addressbook/addressbook.c index b1cf61e067b1d2e3b6d92dd852fbb5c9d652dc3d..39616d2289ed8fb31fdb6b61a31e2a3c500da14c 100644 --- a/sflphone-client-gnome/src/contacts/addressbook.c +++ b/sflphone-client-gnome/src/contacts/addressbook/addressbook.c @@ -27,11 +27,12 @@ * shall include the source code for the parts of OpenSSL used as well * as that of the covered work. */ - -#include <addressbook.h> -#include <searchbar.h> #include <string.h> -#include <addressbook-config.h> +#include <stdio.h> + +#include "addressbook.h" +#include "searchbar.h" +#include "addressbook-config.h" static void handler_async_search (GList *, gpointer); @@ -44,15 +45,13 @@ addressbook_search (GtkEntry* entry) { const gchar* query = gtk_entry_get_text (GTK_ENTRY (entry)); - DEBUG ("Addressbook: Search %s", query); - + printf("Addressbook: Search %s\n", query); AddressBook_Config *addressbook_config; activateWaitingLayer(); - addressbook_config_load_parameters (&addressbook_config); - + // addressbook_config_load_parameters (&addressbook_config); search_async_by_contacts (gtk_entry_get_text (GTK_ENTRY (entry)), addressbook_config->max_results, &handler_async_search, addressbook_config); @@ -66,8 +65,10 @@ addressbook_is_enabled() { AddressBook_Config *addressbook_config; + printf("Addresbook: is enabled\n"); + // Load the address book parameters - addressbook_config_load_parameters (&addressbook_config); + // addressbook_config_load_parameters (&addressbook_config); return (guint) addressbook_config->enable; } @@ -78,6 +79,8 @@ addressbook_is_enabled() gboolean addressbook_is_ready() { + printf("Addressbook: is ready\n"); + return books_ready(); } @@ -87,6 +90,7 @@ addressbook_is_ready() gboolean addressbook_is_active() { + printf("Addressbook: is active\n"); return books_active(); } @@ -100,8 +104,12 @@ addressbook_config_books() book_data_t *book_data; gchar **list; + + // Retrieve list of books - list = (gchar **) dbus_get_addressbook_list(); + // list = (gchar **) dbus_get_addressbook_list(); + + list = NULL; if (list == NULL) return; @@ -113,7 +121,7 @@ addressbook_config_books() // If book_data exists if (book_data == NULL) { - ERROR ("Addressbook: Error: Could not open book (%s:%d)", __FILE__, __LINE__); + printf("Addressbook: Error: Could not open book (%s:%d)\n", __FILE__, __LINE__); } else { book_data->active = TRUE; } @@ -128,7 +136,7 @@ addressbook_config_books() GSList * addressbook_get_books_data() { - DEBUG ("Addressboook: Get books data"); + printf("Addressbook: Get books data\n"); fill_books_data(); addressbook_config_books(); @@ -137,6 +145,11 @@ addressbook_get_books_data() return get_books_data(); } +GSList * +addressbook_get_book_data_by_uid(gchar *uid) +{ +} + /** * Initialize books. * Set active/inactive status depending on config. @@ -144,7 +157,7 @@ addressbook_get_books_data() void addressbook_init() { - DEBUG ("Addressbook: Initialize addressbook"); + printf("Addressbook: Initialize addressbook\n"); init_eds_mutex(); @@ -168,7 +181,7 @@ handler_async_search (GList *hits, gpointer user_data) AddressBook_Config *addressbook_config; callable_obj_t *j; - DEBUG ("Addressbook: callback async search"); + printf("Addressbook: callback async search\n"); // freeing calls while ( (j = (callable_obj_t *) g_queue_pop_tail (contacts->callQueue)) != NULL) { @@ -205,7 +218,7 @@ handler_async_search (GList *hits, gpointer user_data) calllist_add_contact (entry->name, entry->phone_home, CONTACT_PHONE_HOME, photo); - // Create entry for mobile phone information + // Create entry for mobile phone iddnformation if (addressbook_display (addressbook_config, ADDRESSBOOK_DISPLAY_PHONE_MOBILE)) calllist_add_contact (entry->name, entry->phone_mobile, @@ -224,3 +237,6 @@ handler_async_search (GList *hits, gpointer user_data) gtk_widget_grab_focus (GTK_WIDGET (contacts->view)); } +void addressbook_set_search_type(AddrbookSearchType searchType) { + +} diff --git a/sflphone-client-gnome/src/contacts/addressbook/eds.c b/sflphone-client-gnome/src/contacts/addressbook/eds.c index e58679cda88c438fe3b801a91dc7fadda75c08d5..842845903d62b6283fa445846d494c542735d490 100644 --- a/sflphone-client-gnome/src/contacts/addressbook/eds.c +++ b/sflphone-client-gnome/src/contacts/addressbook/eds.c @@ -143,7 +143,7 @@ books_active() g_mutex_lock(books_data_mutex); if (books_data == NULL) { - DEBUG ("Addressbook: No books data (%s:%d)", __FILE__, __LINE__); + printf("Addressbook: No books data (%s:%d)\n", __FILE__, __LINE__); g_mutex_unlock(books_data_mutex); return FALSE; } @@ -176,12 +176,12 @@ books_get_book_data_by_uid (gchar *uid) g_mutex_lock(books_data_mutex); if (books_data == NULL) { - DEBUG ("Addressbook: No books data (%s:%d)", __FILE__, __LINE__); + printf("Addressbook: No books data (%s:%d)\n", __FILE__, __LINE__); g_mutex_unlock(books_data_mutex); return NULL; } - DEBUG ("Addressbook: Get book data by uid: %s", uid); + printf("Addressbook: Get book data by uid: %s\n", uid); // Iterate throw the list for (book_list_iterator = books_data; book_list_iterator != NULL; book_list_iterator @@ -189,7 +189,7 @@ books_get_book_data_by_uid (gchar *uid) book_data = (book_data_t *) book_list_iterator->data; if (strcmp (book_data->uid, uid) == 0) { - DEBUG ("Addressbook: Book %s found", uid); + printf("Addressbook: Book %s found\n", uid); g_mutex_unlock(books_data_mutex); return book_data; } @@ -197,7 +197,7 @@ books_get_book_data_by_uid (gchar *uid) g_mutex_unlock(books_data_mutex); - DEBUG ("Addressbook: Could not found Book %s", uid); + printf("Addressbook: Could not found Book %s\n", uid); // If no result return NULL; } @@ -297,7 +297,7 @@ view_finish_callback (EBookView *book_view, Search_Handler_And_Data *had) g_free (had); - DEBUG ("Addressbook: View finish, all book have been processed"); + printf("Addressbook: View finish, all book have beem processed\n"); if (book_view != NULL) g_object_unref (book_view); @@ -314,28 +314,27 @@ view_finish_callback (EBookView *book_view, Search_Handler_And_Data *had) void eds_query_result_cb (EBook *book, const GError *error, GList *contacts, gpointer user_data) { - DEBUG ("Addressbook: Search Result callback called"); - + printf("Addressbook: Search Result callback called\n"); if (error) { - ERROR ("Addressbook: Error: %s", error->message); + printf("Addressbook: Error: %s\n", error->message); return; } #else static void eds_query_result_cb (EBook *book, EBookStatus status, GList *contacts, gpointer user_data) { - DEBUG ("Addressbook: Search Result callback called"); + printf("Addressbook: Search Result callback called\n"); - if (status != E_BOOK_ERROR_OK) { - ERROR ("Addressbook: Error: "); - return; - } + if (status != E_BOOK_ERROR_OK) { + printf("Addressbook: Error: "); + return; + } #endif Search_Handler_And_Data *had = (Search_Handler_And_Data *) user_data; if (contacts == NULL) { - DEBUG ("Addressbook: No contact found"); + printf("Addressbook: No contact found\n"); had->search_handler (NULL, user_data); return; } @@ -392,13 +391,13 @@ eds_query_result_cb (EBook *book, EBookStatus status, GList *contacts, gpointer void eds_async_open_callback (EBook *book, const GError *error, gpointer closure) { - DEBUG("Addressbook: Open book callback"); + printf("Addressbook: Open book callback\n"); ESource *source; const gchar *uri; if(error) { - ERROR("Addressbook: Error: %s", error->message); + printf("Addressbook: Error: %s\n", error->message); return; } #else @@ -409,7 +408,7 @@ eds_async_open_callback (EBook *book, EBookStatus status, gpointer closure) const gchar *uri; if(status == E_BOOK_ERROR_OK) { - ERROR("Addressbook: Error: "); + printf("Addressbook: Error\n"); return; } @@ -418,11 +417,11 @@ eds_async_open_callback (EBook *book, EBookStatus status, gpointer closure) Search_Handler_And_Data *had = (Search_Handler_And_Data *) closure; if (! (source = e_book_get_source (book))) { - ERROR("Addressbook: Error: while getting source"); + printf("Addressbook: Error: while getting source\n"); } if (! (uri = e_book_get_uri (book))) { - ERROR("Addressbook: Error while getting URI"); + printf("Addressbook: Error while getting URI\n"); } authenticate_source (book); @@ -434,10 +433,10 @@ eds_async_open_callback (EBook *book, EBookStatus status, gpointer closure) #ifdef LIBEDATASERVER_VERSION_2_32 if (!e_book_get_contacts_async (book, had->equery, eds_query_result_cb, had)) - ERROR("Addressbook: Error: While querying addressbook"); + printf("Addressbook: Error: While querying addressbook\n"); #else if (e_book_async_get_contacts (book, had->equery, eds_query_result_cb, had)) - ERROR ("Addressbook: Error: While querying addressbook"); + printf("Addressbook: Error: While querying addressbook\n"); #endif } @@ -451,12 +450,12 @@ init_eds () GSList *book_list_iterator; book_data_t *book_data; - DEBUG ("Addressbook: Init evolution data server"); + printf ("Addressbook: Init evolution data server\n"); g_mutex_lock(books_data_mutex); if (books_data == NULL) { - DEBUG ("Addressbook: No books data (%s:%d)", __FILE__, __LINE__); + printf ("Addressbook: No books data (%s:%d)\n", __FILE__, __LINE__); g_mutex_unlock(books_data_mutex); return; } @@ -480,7 +479,7 @@ init_eds () } } - DEBUG("END EVOLUTION INIT %s, %s, %s", current_uri, current_uid, current_name); + printf("END EVOLUTION INIT %s, %s, %s\n", current_uri, current_uid, current_name); g_mutex_unlock(books_data_mutex); } @@ -562,19 +561,19 @@ fill_books_data () GSList *list, *l; ESourceList *source_list = NULL; - DEBUG ("Addressbook: Fill books data"); + printf ("Addressbook: Fill books data\n"); source_list = e_source_list_new_for_gconf_default ("/apps/evolution/addressbook/sources"); if (source_list == NULL) { - ERROR ("Addressbook: Error could not initialize source list for addressbook (%s:%d)", __FILE__, __LINE__); + printf ("Addressbook: Error could not initialize source list for addressbook (%s:%d)\n", __FILE__, __LINE__); return; } list = e_source_list_peek_groups (source_list); if (list == NULL) { - ERROR ("Addressbook: Address Book source groups are missing (%s:%d)! Check your GConf setup.", __FILE__, __LINE__); + printf ("Addressbook: Address Book source groups are missing (%s:%d)! Check your GConf setup.\n", __FILE__, __LINE__); return; } @@ -664,7 +663,7 @@ determine_default_addressbook() current_uri = book_data->uri; current_uid = book_data->uid; current_name = book_data->name; - DEBUG ("Addressbook: No default addressbook found, using %s addressbook as default", book_data->name); + printf ("Addressbook: No default addressbook found, using %s addressbook as default\n", book_data->name); } list_element = g_slist_next (list_element); @@ -680,7 +679,7 @@ empty_books_data() book_data_t *book_data; if (books_data == NULL) { - DEBUG ("Addressbook: No books data (%s:%d)", __FILE__, __LINE__); + printf ("Addressbook: No books data (%s:%d)\n", __FILE__, __LINE__); return; } @@ -701,10 +700,10 @@ search_async_by_contacts (const char *query, int max_results, SearchAsyncHandler GError *err = NULL; EBook *book = NULL; - DEBUG ("Addressbook: New search by contacts: %s, max_results %d", query, max_results); + printf ("Addressbook: New search by contacts: %s, max_results %d\n", query, max_results); if (strlen (query) < 1) { - DEBUG ("Addressbook: Query is empty"); + printf ("Addressbook: Query is empty\n"); handler (NULL, user_data); return; } @@ -719,20 +718,20 @@ search_async_by_contacts (const char *query, int max_results, SearchAsyncHandler had->equery = create_query (query, current_test, (AddressBook_Config *) (user_data)); if (!current_uri) { - ERROR ("Addressbook: Error: Current addressbook uri not specified"); + printf ("Addressbook: Error: Current addressbook uri not specified\n"); } - DEBUG ("Addressbook: Opening addressbook: uri: %s", current_uri); - DEBUG ("Addressbook: Opening addressbook: name: %s", current_name); + printf ("Addressbook: Opening addressbook: uri: %s\n", current_uri); + pinrtf ("Addressbook: Opening addressbook: name: %s\n", current_name); book = e_book_new_from_uri(current_uri, &err); if (err) { - ERROR ("Addressbook: Error: Could not open new book: %s", err->message); + printf ("Addressbook: Error: Could not open new book: %s\n", err->message); } if (book) { - DEBUG ("Addressbook: Created empty book successfully"); + printf ("Addressbook: Created empty book successfully\n"); #ifdef LIBEDATASERVER_VERSION_2_32 e_book_open_async (book, TRUE, eds_async_open_callback, had); @@ -743,7 +742,7 @@ search_async_by_contacts (const char *query, int max_results, SearchAsyncHandler } else { - ERROR ("Addressbook: Error: No book available"); + printf ("Addressbook: Error: No book available\n"); } } @@ -778,7 +777,7 @@ set_current_addressbook (const gchar *name) g_mutex_lock(books_data_mutex); if (!books_data) { - DEBUG ("Addressbook: No books data (%s:%d)", __FILE__, __LINE__); + printf ("Addressbook: No books data (%s:%d)\n", __FILE__, __LINE__); g_mutex_unlock(books_data_mutex); return; } @@ -795,7 +794,7 @@ set_current_addressbook (const gchar *name) } } - DEBUG("Addressbook: Set current addressbook %s, %s, %s", current_uri, current_uid, current_name); + printf("Addressbook: Set current addressbook %s, %s, %s\n", current_uri, current_uid, current_name); g_mutex_unlock(books_data_mutex); } diff --git a/sflphone-client-gnome/src/contacts/searchbar.c b/sflphone-client-gnome/src/contacts/searchbar.c index 8ef76b8ff69d7ef2b0e8afde140bba54af183a55..134465f47bebc118afadae0f1b7162214d00127d 100644 --- a/sflphone-client-gnome/src/contacts/searchbar.c +++ b/sflphone-client-gnome/src/contacts/searchbar.c @@ -34,6 +34,7 @@ #include <searchbar.h> #include <calltree.h> #include <contacts/addressbook/eds.h> +#include <contacts/addrbookfactory.h> GtkWidget * searchbox; GtkWidget * addressbookentry; @@ -57,7 +58,10 @@ void searchbar_addressbook_activated (GtkEntry *entry, gchar *arg1 UNUSED, gpoin { DEBUG ("Searchbar: Entry activated"); - addressbook_search (entry); + if(abookfactory_is_addressbook_loaded()) { + AddrBookFactory *factory = abookfactory_get_factory(); + factory->addrbook->search(entry); + } } void searchbar_entry_changed (GtkEntry* entry UNUSED, gchar* arg1 UNUSED, gpointer data UNUSED) @@ -80,9 +84,11 @@ static void cbox_changed_cb (GtkWidget *widget, gpointer user_data UNUSED) name = gtk_combo_box_get_active_text (GTK_COMBO_BOX (widget)); - set_current_addressbook (name); - - addressbook_search (GTK_ENTRY (addressbookentry)); + if(abookfactory_is_addressbook_loaded()) { + AddrBookFactory *factory = abookfactory_get_factory(); + factory->addrbook->set_current_book (name); + factory->addrbook->search(GTK_ENTRY(addressbookentry)); + } } void set_forcus_on_addressbook_searchbar () @@ -98,7 +104,16 @@ void update_searchbar_addressbook_list() gchar *activeText; GSList *book_list_iterator; book_data_t *book_data; - GSList *books_data = addressbook_get_books_data(); + GSList *books_data = NULL; + + if(abookfactory_is_addressbook_loaded()) { + AddrBookFactory *factory = abookfactory_get_factory(); + books_data = factory->addrbook->get_books_data(); + } + + if(books_data == NULL) { + return; + } DEBUG ("Searchbar: Update addressbook list"); @@ -138,19 +153,19 @@ void update_searchbar_addressbook_list() } } - - - if (activeIsSet) { - gtk_combo_box_set_active_iter (GTK_COMBO_BOX (cbox), &activeIter); - set_current_addressbook(activeText); - } - else { - gtk_combo_box_set_active (GTK_COMBO_BOX (cbox), 0); - gtk_combo_box_get_active_text(GTK_COMBO_BOX(cbox)); - set_current_addressbook(gtk_combo_box_get_active_text(GTK_COMBO_BOX(cbox))); + if(abookfactory_is_addressbook_loaded()) { + AddrBookFactory *factory = abookfactory_get_factory(); + if (activeIsSet) { + gtk_combo_box_set_active_iter (GTK_COMBO_BOX (cbox), &activeIter); + factory->addrbook->set_current_book(activeText); + } + else { + gtk_combo_box_set_active (GTK_COMBO_BOX (cbox), 0); + 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))); + } } - g_free (activeText); cboxSignalId = gtk_signal_connect (GTK_OBJECT (cbox), "changed", G_CALLBACK (cbox_changed_cb), NULL); } @@ -158,23 +173,28 @@ void update_searchbar_addressbook_list() static void select_search_type (GtkWidget *item, GtkEntry *entry UNUSED) { - DEBUG ("Searchbar: %s", gtk_menu_item_get_label (GTK_MENU_ITEM (item))); - + + if(abookfactory_is_addressbook_loaded()) { + AddrBookFactory *factory = abookfactory_get_factory(); + 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, gtk_menu_item_get_label (GTK_MENU_ITEM (item))); - if (strcmp ("Search is", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) - set_current_addressbook_test (E_BOOK_QUERY_IS); - else if (strcmp ("Search begins with", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) - set_current_addressbook_test (E_BOOK_QUERY_BEGINS_WITH); - else if (strcmp ("Search contains", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) - set_current_addressbook_test (E_BOOK_QUERY_CONTAINS); - - addressbook_search (GTK_ENTRY (addressbookentry)); + if (strcmp ("Search is", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) { + factory->addrbook->set_search_type(ABOOK_QUERY_IS); + } + else if (strcmp ("Search begins with", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) { + factory->addrbook->set_search_type(ABOOK_QUERY_BEGINS_WITH); + } + else if (strcmp ("Search contains", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) { + factory->addrbook->set_search_type(ABOOK_QUERY_CONTAINS); + } + factory->addrbook->search (GTK_ENTRY (addressbookentry)); + } } @@ -399,18 +419,24 @@ GtkWidget* contacts_searchbar_new () liststore = gtk_list_store_new (1,G_TYPE_STRING); // Create combo box to select current addressbook - addressbook_init(); + if(!abookfactory_is_addressbook_loaded()) { + return NULL; + } + + AddrBookFactory *factory = abookfactory_get_factory(); + + factory->addrbook->init(); GSList *book_list_iterator; book_data_t *book_data; - GSList *books_data = addressbook_get_books_data(); + GSList *books_data = factory->addrbook->get_books_data(); // Populate menu count = 0; gboolean activeIsSet = FALSE; for (book_list_iterator = books_data; book_list_iterator != NULL; - book_list_iterator = book_list_iterator->next) { + book_list_iterator = book_list_iterator->next) { book_data = (book_data_t *) book_list_iterator->data; if (book_data->active) { diff --git a/sflphone-client-gnome/src/dbus/Makefile.am b/sflphone-client-gnome/src/dbus/Makefile.am index e769b2a8a7a065a4f3c3f47872d06b9908790f07..2fbd96d1daa2bbcf3e8daaf7ec719d40ef4f37f2 100644 --- a/sflphone-client-gnome/src/dbus/Makefile.am +++ b/sflphone-client-gnome/src/dbus/Makefile.am @@ -24,15 +24,15 @@ libdbus_la_SOURCES= \ dbus.c \ $(BUILT_SOURCES) -libdbus_la_LDFLAGS= @DBUSGLIB_LDFLAGS@ @LIBNOTIFY_LDFLAGS@ \ - @SFLGTK_LDFLAGS@ @SFLGLIB_LDFLAGS@ @WEBKIT_LDFLAGS@ @LIBEBOOK_LDFLAGS@ \ - @LIBEDATASERVER_LDFLAGS@ @LIBEDATASERVERUI_LDFLAGS@ @LIBGNOMEUI_LDFLAGS@ \ - @GNOMEDOCUTILS_LDFLAGS@ - -libdbus_la_CFLAGS= @DBUSGLIB_CFLAGS@ @LIBNOTIFY_CFLAGS@ \ - @SFLGTK_CFLAGS@ @SFLGLIB_CFLAGS@ @WEBKIT_CFLAGS@ @LIBEBOOK_CFLAGS@ \ - @LIBEDATASERVER_CFLAGS@ @LIBEDATASERVERUI_CFLAGS@ @LIBGNOMEUI_CFLAGS@ \ - @GNOMEDOCUTILS_CFLAGS@ +libdbus_la_LDFLAGS= $(DBUSGLIB_LDFLAGS) $(LIBNOTIFY_LDFLAGS) \ + $(SFLGTK_LDFLAGS) $(SFLGLIB_LDFLAGS) $(WEBKIT_LDFLAGS) $(LIBEBOOK_LDFLAGS) \ + $(LIBEDATASERVER_LDFLAGS) $(LIBEDATASERVERUI_LDFLAGS) $(LIBGNOMEUI_LDFLAGS) \ + $(GNOMEDOCUTILS_LDFLAGS) + +libdbus_la_CFLAGS= $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) \ + $(SFLGTK_CFLAGS) $(SFLGLIB_CFLAGS) $(WEBKIT_CFLAGS) $(LIBEBOOK_CFLAGS) \ + $(LIBEDATASERVER_CFLAGS) $(LIBEDATASERVERUI_CFLAGS) $(LIBGNOMEUI_CFLAGS) \ + $(GNOMEDOCUTILS_CFLAGS) EXTRA_DIST= \ marshaller.list diff --git a/sflphone-client-gnome/src/icons/Makefile.am b/sflphone-client-gnome/src/icons/Makefile.am index 9b89d247c61c6bf8218350f32aa9664dbd62273f..5b5c75fe19f2d32d7537e42d9e8af4da4455388b 100644 --- a/sflphone-client-gnome/src/icons/Makefile.am +++ b/sflphone-client-gnome/src/icons/Makefile.am @@ -9,12 +9,12 @@ noinst_libicons_la_HEADER= \ icon_factory.h \ pixmaps_data.h -libicons_la_LDFLAGS = @DBUSGLIB_LDFLAGS@ @LIBNOTIFY_LDFLAGS@ \ - @SFLGTK_LDFLAGS@ @SFLGLIB_LDFLAGS@ @WEBKIT_LDFLAGS@ @LIBEBOOK_LDFLAGS@ \ - @LIBEDATASERVER_LDFLAGS@ @LIBEDATASERVERUI_LDFLAGS@ @LIBGNOMEUI_LDFLAGS@ \ - @GNOMEDOCUTILS_LDFLAGS@ +libicons_la_LDFLAGS = $(DBUSGLIB_LDFLAGS) $(LIBNOTIFY_LDFLAGS) \ + $(SFLGTK_LDFLAGS) $(SFLGLIB_LDFLAGS) $(WEBKIT_LDFLAGS) $(LIBEBOOK_LDFLAGS) \ + $(LIBEDATASERVER_LDFLAGS) $(LIBEDATASERVERUI_LDFLAGS) $(LIBGNOMEUI_LDFLAGS) \ + $(GNOMEDOCUTILS_LDFLAGS) -libicons_la_CFLAGS = @DBUSGLIB_CFLAGS@ @LIBNOTIFY_CFLAGS@ \ - @SFLGTK_CFLAGS@ @SFLGLIB_CFLAGS@ @WEBKIT_CFLAGS@ @LIBEBOOK_CFLAGS@ \ - @LIBEDATASERVER_CFLAGS@ @LIBEDATASERVERUI_CFLAGS@ @LIBGNOMEUI_CFLAGS@ \ - @GNOMEDOCUTILS_CFLAGS@ +libicons_la_CFLAGS = $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) \ + $(SFLGTK_CFLAGS) $(SFLGLIB_CFLAGS) $(WEBKIT_CFLAGS) $(LIBEBOOK_CFLAGS) \ + $(LIBEDATASERVER_CFLAGS) $(LIBEDATASERVERUI_CFLAGS) $(LIBGNOMEUI_CFLAGS) \ + $(GNOMEDOCUTILS_CFLAGS) diff --git a/sflphone-client-gnome/src/toolbar.c b/sflphone-client-gnome/src/toolbar.c index 470bc43f4c7212fb0e511c72903194e65fc58dc0..5a1fbf189ced99ead5bca9bf48f0965421ce762a 100644 --- a/sflphone-client-gnome/src/toolbar.c +++ b/sflphone-client-gnome/src/toolbar.c @@ -87,125 +87,3 @@ call_button (GtkWidget *widget UNUSED, gpointer data UNUSED) calltree_display (current_calls); } } - - - -/* -GtkWidget *create_toolbar () -{ - GtkWidget *ret; - GtkWidget *image; - - ret = gtk_toolbar_new(); - toolbar = ret; - - gtk_toolbar_set_orientation(GTK_TOOLBAR(ret), GTK_ORIENTATION_HORIZONTAL); - gtk_toolbar_set_style(GTK_TOOLBAR(ret), GTK_TOOLBAR_ICONS); - - image = gtk_image_new_from_file( ICONS_DIR "/dial.svg"); - callButton = gtk_tool_button_new (image, _("New call")); -#if GTK_CHECK_VERSION(2,12,0) - gtk_widget_set_tooltip_text(GTK_WIDGET(callButton), _("New call")); -#endif - g_signal_connect (G_OBJECT (callButton), "clicked", - G_CALLBACK (call_button), NULL); - gtk_toolbar_insert(GTK_TOOLBAR(ret), GTK_TOOL_ITEM(callButton), -1); - - image = gtk_image_new_from_file( ICONS_DIR "/accept.svg"); - pickupButton = gtk_tool_button_new(image, _("Pick up")); -#if GTK_CHECK_VERSION(2,12,0) - gtk_widget_set_tooltip_text(GTK_WIDGET(pickupButton), _("Pick up")); -#endif - gtk_widget_set_state( GTK_WIDGET(pickupButton), GTK_STATE_INSENSITIVE); - g_signal_connect(G_OBJECT (pickupButton), "clicked", - G_CALLBACK (call_button), NULL); - gtk_widget_show_all(GTK_WIDGET(pickupButton)); - - image = gtk_image_new_from_file( ICONS_DIR "/hang_up.svg"); - hangupButton = gtk_tool_button_new (image, _("Hang up")); -#if GTK_CHECK_VERSION(2,12,0) - gtk_widget_set_tooltip_text(GTK_WIDGET(hangupButton), _("Hang up")); -#endif - gtk_widget_set_state( GTK_WIDGET(hangupButton), GTK_STATE_INSENSITIVE); - g_signal_connect (G_OBJECT (hangupButton), "clicked", - G_CALLBACK (hang_up), NULL); - gtk_toolbar_insert(GTK_TOOLBAR(ret), GTK_TOOL_ITEM(hangupButton), -1); - - image = gtk_image_new_from_file( ICONS_DIR "/unhold.svg"); - unholdButton = gtk_tool_button_new (image, _("Hold off")); -#if GTK_CHECK_VERSION(2,12,0) - gtk_widget_set_tooltip_text(GTK_WIDGET(unholdButton), _("Hold off")); -#endif - gtk_widget_set_state( GTK_WIDGET(unholdButton), GTK_STATE_INSENSITIVE); - g_signal_connect (G_OBJECT (unholdButton), "clicked", - G_CALLBACK (unhold), NULL); - //gtk_toolbar_insert(GTK_TOOLBAR(ret), GTK_TOOL_ITEM(unholdButton), -1); - gtk_widget_show_all(GTK_WIDGET(unholdButton)); - - image = gtk_image_new_from_file( ICONS_DIR "/hold.svg"); - holdButton = gtk_tool_button_new (image, _("Hold on")); -#if GTK_CHECK_VERSION(2,12,0) - gtk_widget_set_tooltip_text(GTK_WIDGET(holdButton), _("Hold on")); -#endif - gtk_widget_set_state( GTK_WIDGET(holdButton), GTK_STATE_INSENSITIVE); - g_signal_connect (G_OBJECT (holdButton), "clicked", - G_CALLBACK (hold), NULL); - gtk_toolbar_insert(GTK_TOOLBAR(ret), GTK_TOOL_ITEM(holdButton), -1); - - image = gtk_image_new_from_file( ICONS_DIR "/transfert.svg"); - transfertButton = gtk_toggle_tool_button_new (); - gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(transfertButton), image); -#if GTK_CHECK_VERSION(2,12,0) - gtk_widget_set_tooltip_text(GTK_WIDGET(transfertButton), _("Transfer")); -#endif - gtk_tool_button_set_label(GTK_TOOL_BUTTON(transfertButton), _("Transfer")); - gtk_widget_set_state( GTK_WIDGET(transfertButton), GTK_STATE_INSENSITIVE); - transfertButtonConnId = g_signal_connect (G_OBJECT (transfertButton), "toggled", - G_CALLBACK (transfert), NULL); - gtk_toolbar_insert(GTK_TOOLBAR(ret), GTK_TOOL_ITEM(transfertButton), -1); - - image = gtk_image_new_from_file( ICONS_DIR "/history2.svg"); - historyButton = gtk_toggle_tool_button_new(); - gtk_tool_button_set_icon_widget (GTK_TOOL_BUTTON (historyButton), image); -#if GTK_CHECK_VERSION(2,12,0) - gtk_widget_set_tooltip_text(GTK_WIDGET(historyButton), _("History")); -#endif - gtk_tool_button_set_label (GTK_TOOL_BUTTON (historyButton), _("History")); - g_signal_connect (G_OBJECT (historyButton), "toggled", G_CALLBACK (toggle_button_cb), history); - gtk_toolbar_insert(GTK_TOOLBAR(ret), GTK_TOOL_ITEM(historyButton), -1); - active_calltree = current_calls; - - image = gtk_image_new_from_file( ICONS_DIR "/addressbook.svg"); - contactButton = gtk_toggle_tool_button_new(); - gtk_tool_button_set_icon_widget (GTK_TOOL_BUTTON (contactButton), image); -#if GTK_CHECK_VERSION(2,12,0) - gtk_widget_set_tooltip_text(GTK_WIDGET(contactButton), _("Address book")); -#endif - gtk_tool_button_set_label (GTK_TOOL_BUTTON (contactButton), _("Address book")); - gtk_widget_set_state( GTK_WIDGET(contactButton), GTK_STATE_INSENSITIVE); - g_signal_connect (G_OBJECT (contactButton), "toggled", G_CALLBACK (toggle_button_cb), contacts); - gtk_toolbar_insert(GTK_TOOLBAR(ret), GTK_TOOL_ITEM(contactButton), -1); - - image = gtk_image_new_from_file( ICONS_DIR "/mailbox.svg"); - mailboxButton = gtk_tool_button_new( image , _("Voicemail")); - gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(mailboxButton), image); - if( account_list_get_size() ==0 ) gtk_widget_set_state( GTK_WIDGET(mailboxButton), GTK_STATE_INSENSITIVE ); -#if GTK_CHECK_VERSION(2,12,0) - gtk_widget_set_tooltip_text(GTK_WIDGET(mailboxButton), _("Voicemail")); -#endif - g_signal_connect (G_OBJECT (mailboxButton), "clicked", - G_CALLBACK (call_mailbox), NULL); - gtk_toolbar_insert(GTK_TOOLBAR(ret), GTK_TOOL_ITEM(mailboxButton), -1); - - recButton = gtk_tool_button_new_from_stock (GTK_STOCK_MEDIA_RECORD); -#if GTK_CHECK_VERSION(2,12,0) - gtk_widget_set_tooltip_text(GTK_WIDGET(recButton), _("Record")); -#endif - gtk_widget_set_state( GTK_WIDGET(recButton), GTK_STATE_INSENSITIVE); - g_signal_connect (G_OBJECT (recButton), "clicked", - G_CALLBACK (rec_button), NULL); - gtk_toolbar_insert(GTK_TOOLBAR(ret), GTK_TOOL_ITEM(recButton), -1); - - return ret; -} -*/ diff --git a/sflphone-client-gnome/src/uimanager.c b/sflphone-client-gnome/src/uimanager.c index 30f37ab51fdee31d6ce761e6c2c288ff08604de7..30cc13d50bbdc4857f9e6a4dff6493178ac83fc0 100644 --- a/sflphone-client-gnome/src/uimanager.c +++ b/sflphone-client-gnome/src/uimanager.c @@ -42,9 +42,13 @@ #include <statusicon.h> #include <widget/imwidget.h> #include <eel-gconf-extensions.h> + + #include "uimanager.h" #include "statusicon.h" -#include "contacts/addressbook.h" + +#include "contacts/addrbookfactory.h" + #include "accountlist.h" #include "config/accountlistconfigdialog.h" @@ -93,6 +97,7 @@ update_actions() DEBUG ("UIManager: Update action"); + gtk_action_set_sensitive (GTK_ACTION (newCallAction), TRUE); gtk_action_set_sensitive (GTK_ACTION (pickUpAction), FALSE); gtk_action_set_sensitive (GTK_ACTION (hangUpAction), FALSE); @@ -102,12 +107,16 @@ update_actions() g_object_ref (recordWidget); g_object_ref (holdToolbar); g_object_ref (offHoldToolbar); - g_object_ref (contactButton); + if(abookfactory_is_addressbook_loaded()) { + g_object_ref (contactButton); + } g_object_ref (historyButton); g_object_ref (transferToolbar); g_object_ref (voicemailToolbar); g_object_ref (imToolbar); + DEBUG("OK1"); + if (is_inserted (GTK_WIDGET (hangUpWidget), GTK_WIDGET (toolbar))) { gtk_container_remove (GTK_CONTAINER (toolbar), GTK_WIDGET (hangUpWidget)); } @@ -125,8 +134,10 @@ update_actions() gtk_container_remove (GTK_CONTAINER (toolbar), GTK_WIDGET (historyButton)); } - if (is_inserted (GTK_WIDGET (contactButton), GTK_WIDGET (toolbar))) { - gtk_container_remove (GTK_CONTAINER (toolbar), GTK_WIDGET (contactButton)); + if(abookfactory_is_addressbook_loaded()) { + if (is_inserted (GTK_WIDGET (contactButton), GTK_WIDGET (toolbar))) { + gtk_container_remove (GTK_CONTAINER (toolbar), GTK_WIDGET (contactButton)); + } } if (is_inserted (GTK_WIDGET (voicemailToolbar), GTK_WIDGET (toolbar))) { @@ -138,6 +149,8 @@ update_actions() gtk_container_remove (GTK_CONTAINER (toolbar), GTK_WIDGET (imToolbar)); } + + DEBUG("OK2"); gtk_widget_set_sensitive (GTK_WIDGET (holdMenu), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (holdToolbar), FALSE); @@ -145,10 +158,13 @@ update_actions() gtk_action_set_sensitive (GTK_ACTION (recordAction), FALSE); gtk_widget_set_sensitive (GTK_WIDGET (recordWidget), FALSE); gtk_action_set_sensitive (GTK_ACTION (copyAction), FALSE); - gtk_widget_set_sensitive (GTK_WIDGET (contactButton), FALSE); + if(abookfactory_is_addressbook_loaded()) { + gtk_widget_set_sensitive (GTK_WIDGET (contactButton), FALSE); + } gtk_widget_set_sensitive (GTK_WIDGET (historyButton), FALSE); - gtk_widget_set_tooltip_text (GTK_WIDGET (contactButton), - _ ("No address book selected")); + if(abookfactory_is_addressbook_loaded()) { + gtk_widget_set_tooltip_text (GTK_WIDGET (contactButton),_("No address book selected")); + } if (is_inserted (GTK_WIDGET (holdToolbar), GTK_WIDGET (toolbar))) gtk_container_remove (GTK_CONTAINER (toolbar), GTK_WIDGET (holdToolbar)); @@ -170,19 +186,25 @@ update_actions() gtk_widget_set_sensitive (GTK_WIDGET (historyButton), TRUE); } + DEBUG("OK3"); + // If addressbook support has been enabled and all addressbooks are loaded, display the icon - if (addressbook_is_enabled() && addressbook_is_ready()) { - gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (contactButton), - -1); - - // Make the icon clickable only if at least one address book is active - if (addressbook_is_active()) { - gtk_widget_set_sensitive (GTK_WIDGET (contactButton), TRUE); - gtk_widget_set_tooltip_text (GTK_WIDGET (contactButton), - _ ("Address book")); + + if(abookfactory_is_addressbook_loaded()) { + AddrBookFactory *bookFactory = abookfactory_get_factory(); + + if (bookFactory->addrbook->is_enabled() && bookFactory->addrbook->is_ready()) { + gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (contactButton), -1); + + // Make the icon clickable only if at least one address book is active + if (bookFactory->addrbook->is_active()) { + gtk_widget_set_sensitive (GTK_WIDGET (contactButton), TRUE); + gtk_widget_set_tooltip_text (GTK_WIDGET (contactButton),_ ("Address book")); + } } } + DEBUG("OK4"); // g_signal_handler_block (GTK_OBJECT (recordWidget), recordButtonConnId); // gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (recordWidget), FALSE); // g_signal_handler_unblock (GTK_OBJECT (recordWidget), recordButtonConnId); @@ -191,6 +213,8 @@ update_actions() conference_obj_t * selectedConf = calltab_get_selected_conf (active_calltree); gboolean instant_messaging_enabled = TRUE; + + DEBUG("OK4"); if (eel_gconf_key_exists (INSTANT_MESSAGING_ENABLED)) instant_messaging_enabled = eel_gconf_get_integer (INSTANT_MESSAGING_ENABLED); @@ -330,7 +354,6 @@ update_actions() case CONFERENCE_STATE_ACTIVE_ATACHED: case CONFERENCE_STATE_ACTIVE_DETACHED: - DEBUG("---------------------------------------- CONFERENCE STATE active"); gtk_action_set_sensitive (GTK_ACTION (hangUpAction), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (holdToolbar), TRUE); gtk_action_set_sensitive (GTK_ACTION (recordAction), TRUE); @@ -344,7 +367,6 @@ update_actions() break; case CONFERENCE_STATE_ACTIVE_ATTACHED_RECORD: case CONFERENCE_STATE_ACTIVE_DETACHED_RECORD: - DEBUG("---------------------------------------- CONFERENCE STATE record"); gtk_action_set_sensitive (GTK_ACTION (hangUpAction), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (holdToolbar), TRUE); gtk_action_set_sensitive (GTK_ACTION (recordAction), TRUE); @@ -358,7 +380,6 @@ update_actions() break; case CONFERENCE_STATE_HOLD: case CONFERENCE_STATE_HOLD_RECORD: - DEBUG("---------------------------------------- CONFERENCE STATE hold"); gtk_action_set_sensitive (GTK_ACTION (hangUpAction), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (offHoldToolbar), TRUE); gtk_action_set_sensitive (GTK_ACTION (recordAction), TRUE); @@ -387,6 +408,7 @@ update_actions() update_voicemail_status(); } } + DEBUG("OK5"); } void @@ -1002,6 +1024,9 @@ uimanager_new (GtkUIManager **_ui_manager) GtkWidget *window; gchar *path; GError *error = NULL; + gint nb_entries; + + nb_entries = abookfactory_is_addressbook_loaded() ? 7 : 6; window = get_main_window(); ui_manager = gtk_ui_manager_new(); @@ -1037,10 +1062,8 @@ uimanager_new (GtkUIManager **_ui_manager) action_group = gtk_action_group_new ("SFLphoneWindowActions"); // To translate label and tooltip entries gtk_action_group_set_translation_domain (action_group, "sflphone-client-gnome"); - gtk_action_group_add_actions (action_group, menu_entries, - G_N_ELEMENTS (menu_entries), window); - gtk_action_group_add_toggle_actions (action_group, toggle_menu_entries, - G_N_ELEMENTS (toggle_menu_entries), window); + gtk_action_group_add_actions (action_group, menu_entries, G_N_ELEMENTS (menu_entries), window); + gtk_action_group_add_toggle_actions (action_group, toggle_menu_entries, nb_entries, window); //gtk_action_group_add_radio_actions (action_group, radio_menu_entries, G_N_ELEMENTS (radio_menu_entries), CALLTREE_CALLS, G_CALLBACK (calltree_switch_cb), window); gtk_ui_manager_insert_action_group (ui_manager, action_group, 0); @@ -1689,8 +1712,10 @@ create_toolbar_actions (GtkUIManager *ui_manager, GtkWidget **widget) "/ToolbarActions/InstantMessagingToolbar"); historyButton = gtk_ui_manager_get_widget (ui_manager, "/ToolbarActions/HistoryToolbar"); - contactButton = gtk_ui_manager_get_widget (ui_manager, - "/ToolbarActions/AddressbookToolbar"); + if(abookfactory_is_addressbook_loaded()) { + contactButton = gtk_ui_manager_get_widget (ui_manager, + "/ToolbarActions/AddressbookToolbar"); + } // Set the handler ID for the transfer transfertButtonConnId diff --git a/sflphone-client-gnome/src/widget/Makefile.am b/sflphone-client-gnome/src/widget/Makefile.am index 86e945c1ba08ef646c7c246a671e58fbe1379fdf..9fd6d7d29074352351b4b4d66ef6fb0982a51c7b 100644 --- a/sflphone-client-gnome/src/widget/Makefile.am +++ b/sflphone-client-gnome/src/widget/Makefile.am @@ -7,17 +7,17 @@ libwidget_la_SOURCES = \ minidialog.c \ imwidget.c -libwidget_la_LDFLAGS = @DBUSGLIB_LDFLAGS@ @LIBNOTIFY_LDFLAGS@ \ - @SFLGTK_LDFLAGS@ @SFLGLIB_LDFLAGS@ @WEBKIT_LDFLAGS@ @LIBEBOOK_LDFLAGS@ \ - @LIBEDATASERVER_LDFLAGS@ @LIBEDATASERVERUI_LDFLAGS@ @LIBGNOMEUI_LDFLAGS@ \ - @GNOMEDOCUTILS_LDFLAGS@ +libwidget_la_LDFLAGS = $(DBUSGLIB_LDFLAGS) $(LIBNOTIFY_LDFLAGS) \ + $(SFLGTK_LDFLAGS) $(SFLGLIB_LDFLAGS) $(WEBKIT_LDFLAGS) $(LIBEBOOK_LDFLAGS) \ + $(LIBEDATASERVER_LDFLAGS) $(LIBEDATASERVERUI_LDFLAGS) $(LIBGNOMEUI_LDFLAGS) \ + $(GNOMEDOCUTILS_LDFLAGS) -libwidget_la_LIBADD = @DBUSGLIB_LIBS@ @LIBNOTIFY_LIBS@ - @SFLGTK_LIBS@ @SFLGLIB_LIBS@ @WEBKIT_LIBS@ @LIBEBOOK_LIBS@ \ - @LIBEDATASERVER_LIBS@ @LIBEDATASERVERUI_LIBS@ @LIBGNOMEUI_LIBS@ \ - @GNOMEDOCUTILS_LIBS@ +libwidget_la_LIBADD = $(DBUSGLIB_LIBS) $(LIBNOTIFY_LIBS) + $(SFLGTK_LIBS) $(SFLGLIB_LIBS) $(WEBKIT_LIBS) $(LIBEBOOK_LIBS) \ + $(LIBEDATASERVER_LIBS) $(LIBEDATASERVERUI_LIBS) $(LIBGNOMEUI_LIBS) \ + $(GNOMEDOCUTILS_LIBS) -libwidget_la_CFLAGS = @DBUSGLIB_CFLAGS@ @LIBNOTIFY_CFLAGS@ \ - @SFLGTK_CFLAGS@ @SFLGLIB_CFLAGS@ @WEBKIT_CFLAGS@ @LIBEBOOK_CFLAGS@ \ - @LIBEDATASERVER_CFLAGS@ @LIBEDATASERVERUI_CFLAGS@ @LIBGNOMEUI_CFLAGS@ \ - @GNOMEDOCUTILS_CFLAGS@ +libwidget_la_CFLAGS = $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) \ + $(SFLGTK_CFLAGS) $(SFLGLIB_CFLAGS) $(WEBKIT_CFLAGS) $(LIBEBOOK_CFLAGS) \ + $(LIBEDATASERVER_CFLAGS) $(LIBEDATASERVERUI_CFLAGS) $(LIBGNOMEUI_CFLAGS) \ + $(GNOMEDOCUTILS_CFLAGS)