[evolution-data-server] Port remaining bits from GConf to GSettings



commit 8079043125af940a00a4570db6c462867acd8fa2
Author: Milan Crha <mcrha redhat com>
Date:   Thu Jun 14 10:40:10 2012 +0200

    Port remaining bits from GConf to GSettings

 addressbook/libebook/Makefile.am                   |    2 -
 addressbook/libebook/e-book-client.c               |   29 ++--
 addressbook/libebook/e-book.c                      |   28 ++--
 calendar/backends/caldav/e-cal-backend-caldav.c    |    1 -
 .../backends/contacts/e-cal-backend-contacts.c     |   66 +++----
 calendar/backends/http/e-cal-backend-http.c        |    1 -
 configure.ac                                       |   27 +---
 data/Makefile.am                                   |   16 ++-
 data/evolution-data-server.convert                 |    7 +
 ....gnome.Evolution.DefaultSources.gschema.xml.in} |    0
 ...volution-data-server.addressbook.gschema.xml.in |    8 +
 ...e.evolution-data-server.calendar.gschema.xml.in |   19 ++
 libedataserver/libedataserver.pc.in                |    2 +-
 libedataserverui/e-name-selector-entry.c           |  181 +++++++++++++++++---
 libedataserverui/e-name-selector-entry.h           |   19 +-
 po/POTFILES.in                                     |    2 +
 .../evolution-addressbook-factory.c                |    5 -
 .../evolution-calendar-factory.c                   |    5 -
 tests/libedataserverui/test-contact-store.c        |   10 +-
 19 files changed, 279 insertions(+), 149 deletions(-)
---
diff --git a/addressbook/libebook/Makefile.am b/addressbook/libebook/Makefile.am
index 1ac744c..d7dd438 100644
--- a/addressbook/libebook/Makefile.am
+++ b/addressbook/libebook/Makefile.am
@@ -105,10 +105,8 @@ EBook_1_2_gir_INCLUDES = GObject-2.0 GLib-2.0 libxml2-2.0 \
 	Gio-2.0 \
 	$(NULL)
 libxml_include = `$(PKG_CONFIG) --cflags libxml-2.0`
-gconf_include = `$(PKG_CONFIG) --cflags gconf-2.0`
 EBook_1_2_gir_CFLAGS = $(INCLUDES) \
 		       $(libxml_include) \
-		       $(gconf_include) \
 		       -I$(top_srcdir) \
 		       -I$(top_builddir) \
 		       -I$(top_srcdir)/addressbook/ \
diff --git a/addressbook/libebook/e-book-client.c b/addressbook/libebook/e-book-client.c
index 3400605..ccf5db1 100644
--- a/addressbook/libebook/e-book-client.c
+++ b/addressbook/libebook/e-book-client.c
@@ -26,8 +26,6 @@
 #include <glib/gi18n-lib.h>
 #include <gio/gio.h>
 
-#include <gconf/gconf-client.h>
-
 #include <libedataserver/libedataserver.h>
 #include <libedataserver/e-client-private.h>
 
@@ -550,7 +548,8 @@ e_book_client_new (ESource *source,
 	return client;
 }
 
-#define SELF_UID_KEY "/apps/evolution/addressbook/self/self_uid"
+#define SELF_UID_PATH_ID "org.gnome.evolution-data-server.addressbook"
+#define SELF_UID_KEY "self-contact-uid"
 
 static EContact *
 make_me_card (void)
@@ -611,7 +610,7 @@ e_book_client_get_self (ESourceRegistry *registry,
 {
 	ESource *source;
 	GError *local_error = NULL;
-	GConfClient *gconf;
+	GSettings *settings;
 	gchar *uid;
 
 	g_return_val_if_fail (E_IS_SOURCE_REGISTRY (registry), FALSE);
@@ -635,9 +634,9 @@ e_book_client_get_self (ESourceRegistry *registry,
 		return FALSE;
 	}
 
-	gconf = gconf_client_get_default ();
-	uid = gconf_client_get_string (gconf, SELF_UID_KEY, NULL);
-	g_object_unref (gconf);
+	settings = g_settings_new (SELF_UID_PATH_ID);
+	uid = g_settings_get_string (settings, SELF_UID_KEY);
+	g_object_unref (settings);
 
 	if (uid) {
 		gboolean got;
@@ -688,15 +687,15 @@ e_book_client_set_self (EBookClient *client,
                         EContact *contact,
                         GError **error)
 {
-	GConfClient *gconf;
+	GSettings *settings;
 
 	g_return_val_if_fail (E_IS_BOOK_CLIENT (client), FALSE);
 	g_return_val_if_fail (contact != NULL, FALSE);
 	g_return_val_if_fail (e_contact_get_const (contact, E_CONTACT_UID) != NULL, FALSE);
 
-	gconf = gconf_client_get_default ();
-	gconf_client_set_string (gconf, SELF_UID_KEY, e_contact_get_const (contact, E_CONTACT_UID), NULL);
-	g_object_unref (gconf);
+	settings = g_settings_new (SELF_UID_PATH_ID);
+	g_settings_set_string (settings, SELF_UID_KEY, e_contact_get_const (contact, E_CONTACT_UID));
+	g_object_unref (settings);
 
 	return TRUE;
 }
@@ -714,15 +713,15 @@ e_book_client_set_self (EBookClient *client,
 gboolean
 e_book_client_is_self (EContact *contact)
 {
-	GConfClient *gconf;
+	GSettings *settings;
 	gchar *uid;
 	gboolean is_self;
 
 	g_return_val_if_fail (contact && E_IS_CONTACT (contact), FALSE);
 
-	gconf = gconf_client_get_default ();
-	uid = gconf_client_get_string (gconf, SELF_UID_KEY, NULL);
-	g_object_unref (gconf);
+	settings = g_settings_new (SELF_UID_PATH_ID);
+	uid = g_settings_get_string (settings, SELF_UID_KEY);
+	g_object_unref (settings);
 
 	is_self = uid && !g_strcmp0 (uid, e_contact_get_const (contact, E_CONTACT_UID));
 
diff --git a/addressbook/libebook/e-book.c b/addressbook/libebook/e-book.c
index e1d9423..16df768 100644
--- a/addressbook/libebook/e-book.c
+++ b/addressbook/libebook/e-book.c
@@ -38,7 +38,6 @@
 #include <unistd.h>
 #include <string.h>
 #include <glib/gi18n-lib.h>
-#include <gconf/gconf-client.h>
 #include "e-book.h"
 #include "e-error.h"
 #include "e-contact.h"
@@ -2721,7 +2720,8 @@ e_book_is_online (EBook *book)
 	return book->priv->connected;
 }
 
-#define SELF_UID_KEY "/apps/evolution/addressbook/self/self_uid"
+#define SELF_UID_PATH_ID "org.gnome.evolution-data-server.addressbook"
+#define SELF_UID_KEY "self-contact-uid"
 
 static EContact *
 make_me_card (void)
@@ -2782,7 +2782,7 @@ e_book_get_self (ESourceRegistry *registry,
 {
 	ESource *source;
 	GError *e = NULL;
-	GConfClient *gconf;
+	GSettings *settings;
 	gboolean status;
 	gchar *uid;
 
@@ -2807,9 +2807,9 @@ e_book_get_self (ESourceRegistry *registry,
 		return FALSE;
 	}
 
-	gconf = gconf_client_get_default ();
-	uid = gconf_client_get_string (gconf, SELF_UID_KEY, NULL);
-	g_object_unref (gconf);
+	settings = g_settings_new (SELF_UID_PATH_ID);
+	uid = g_settings_get_string (settings, SELF_UID_KEY);
+	g_object_unref (settings);
 
 	if (uid) {
 		gboolean got;
@@ -2856,14 +2856,14 @@ e_book_set_self (EBook *book,
                  EContact *contact,
                  GError **error)
 {
-	GConfClient *gconf;
+	GSettings *settings;
 
 	g_return_val_if_fail (E_IS_BOOK (book), FALSE);
 	g_return_val_if_fail (E_IS_CONTACT (contact), FALSE);
 
-	gconf = gconf_client_get_default ();
-	gconf_client_set_string (gconf, SELF_UID_KEY, e_contact_get_const (contact, E_CONTACT_UID), NULL);
-	g_object_unref (gconf);
+	settings = g_settings_new (SELF_UID_PATH_ID);
+	g_settings_set_string (settings, SELF_UID_KEY, e_contact_get_const (contact, E_CONTACT_UID));
+	g_object_unref (settings);
 
 	return TRUE;
 }
@@ -2881,7 +2881,7 @@ e_book_set_self (EBook *book,
 gboolean
 e_book_is_self (EContact *contact)
 {
-	GConfClient *gconf;
+	GSettings *settings;
 	gchar *uid;
 	gboolean rv;
 
@@ -2889,9 +2889,9 @@ e_book_is_self (EContact *contact)
 	 * need a GError arg for that */
 	g_return_val_if_fail (contact && E_IS_CONTACT (contact), FALSE);
 
-	gconf = gconf_client_get_default ();
-	uid = gconf_client_get_string (gconf, SELF_UID_KEY, NULL);
-	g_object_unref (gconf);
+	settings = g_settings_new (SELF_UID_PATH_ID);
+	uid = g_settings_get_string (settings, SELF_UID_KEY);
+	g_object_unref (settings);
 
 	rv = (uid && !strcmp (uid, e_contact_get_const (contact, E_CONTACT_UID)));
 
diff --git a/calendar/backends/caldav/e-cal-backend-caldav.c b/calendar/backends/caldav/e-cal-backend-caldav.c
index 91a9c58..a1e4db6 100644
--- a/calendar/backends/caldav/e-cal-backend-caldav.c
+++ b/calendar/backends/caldav/e-cal-backend-caldav.c
@@ -25,7 +25,6 @@
 #include <config.h>
 #include <string.h>
 #include <unistd.h>
-#include <gconf/gconf-client.h>
 #include <glib/gstdio.h>
 #include <glib/gi18n-lib.h>
 
diff --git a/calendar/backends/contacts/e-cal-backend-contacts.c b/calendar/backends/contacts/e-cal-backend-contacts.c
index 62077f5..c46cd5c 100644
--- a/calendar/backends/contacts/e-cal-backend-contacts.c
+++ b/calendar/backends/contacts/e-cal-backend-contacts.c
@@ -31,7 +31,6 @@
 #include "e-cal-backend-contacts.h"
 
 #include <glib/gi18n-lib.h>
-#include <gconf/gconf-client.h>
 #include <libsoup/soup.h>
 
 #include <libebook/libebook.h>
@@ -69,10 +68,8 @@ struct _ECalBackendContactsPrivate {
 	GHashTable *zones;
 
 	/* properties related to track alarm settings for this backend */
-	GConfClient *conf_client;
-	guint notifyid1;
-	guint notifyid2;
-	guint notifyid3;
+	GSettings *settings;
+	guint notifyid;
 	guint update_alarms_id;
 	gboolean alarm_enabled;
 	gint alarm_interval;
@@ -743,16 +740,24 @@ update_tracked_alarms_cb (gpointer user_data)
 	return FALSE;
 }
 
+#define BA_CONF_ENABLED		"contacts-reminder-enabled"
+#define BA_CONF_INTERVAL	"contacts-reminder-interval"
+#define BA_CONF_UNITS		"contacts-reminder-units"
+
 static void
-alarm_config_changed_cb (GConfClient *client,
-                         guint cnxn_id,
-                         GConfEntry *entry,
+alarm_config_changed_cb (GSettings *settings,
+                         const gchar *key,
                          gpointer user_data)
 {
 	ECalBackendContacts *cbc = user_data;
 
 	g_return_if_fail (cbc != NULL);
 
+	if (g_strcmp0 (key, BA_CONF_ENABLED) != 0 &&
+	    g_strcmp0 (key, BA_CONF_INTERVAL) != 0 &&
+	    g_strcmp0 (key, BA_CONF_UNITS) != 0)
+		return;
+
 	setup_alarm (cbc, NULL);
 
 	if (!cbc->priv->update_alarms_id)
@@ -773,23 +778,16 @@ setup_alarm (ECalBackendContacts *cbc,
 	if (!comp || cbc->priv->alarm_interval == -1) {
 		gchar *str;
 
-		#define BA_CONF_DIR		"/apps/evolution/calendar/other"
-		#define BA_CONF_ENABLED		BA_CONF_DIR "/use_ba_reminder"
-		#define BA_CONF_INTERVAL	BA_CONF_DIR "/ba_reminder_interval"
-		#define BA_CONF_UNITS		BA_CONF_DIR "/ba_reminder_units"
-
 		if (cbc->priv->alarm_interval == -1) {
 			/* initial setup, hook callback for changes too */
-			gconf_client_add_dir (cbc->priv->conf_client, BA_CONF_DIR, GCONF_CLIENT_PRELOAD_NONE, NULL);
-			cbc->priv->notifyid1 = gconf_client_notify_add (cbc->priv->conf_client, BA_CONF_ENABLED,  alarm_config_changed_cb, cbc, NULL, NULL);
-			cbc->priv->notifyid2 = gconf_client_notify_add (cbc->priv->conf_client, BA_CONF_INTERVAL, alarm_config_changed_cb, cbc, NULL, NULL);
-			cbc->priv->notifyid3 = gconf_client_notify_add (cbc->priv->conf_client, BA_CONF_UNITS,    alarm_config_changed_cb, cbc, NULL, NULL);
+			cbc->priv->notifyid = g_signal_connect (cbc->priv->settings,
+				"changed", G_CALLBACK (alarm_config_changed_cb), cbc);
 		}
 
-		cbc->priv->alarm_enabled = gconf_client_get_bool (cbc->priv->conf_client, BA_CONF_ENABLED, NULL);
-		cbc->priv->alarm_interval = gconf_client_get_int (cbc->priv->conf_client, BA_CONF_INTERVAL, NULL);
+		cbc->priv->alarm_enabled = g_settings_get_boolean (cbc->priv->settings, BA_CONF_ENABLED);
+		cbc->priv->alarm_interval = g_settings_get_int (cbc->priv->settings, BA_CONF_INTERVAL);
 
-		str = gconf_client_get_string (cbc->priv->conf_client, BA_CONF_UNITS, NULL);
+		str = g_settings_get_string (cbc->priv->settings, BA_CONF_UNITS);
 		if (str && !strcmp (str, "days"))
 			cbc->priv->alarm_units = CAL_DAYS;
 		else if (str && !strcmp (str, "hours"))
@@ -804,11 +802,6 @@ setup_alarm (ECalBackendContacts *cbc,
 
 		if (!comp)
 			return;
-
-		#undef BA_CONF_DIR
-		#undef BA_CONF_ENABLED
-		#undef BA_CONF_INTERVAL
-		#undef BA_CONF_UNITS
 	}
 
 	/* ensure no alarms left */
@@ -853,6 +846,10 @@ setup_alarm (ECalBackendContacts *cbc,
 	e_cal_component_alarm_free (alarm);
 }
 
+#undef BA_CONF_ENABLED
+#undef BA_CONF_INTERVAL
+#undef BA_CONF_UNITS
+
 /* Contact -> Event creator */
 static ECalComponent *
 create_component (ECalBackendContacts *cbc,
@@ -1325,14 +1322,10 @@ e_cal_backend_contacts_finalize (GObject *object)
 	g_hash_table_destroy (priv->addressbooks);
 	g_hash_table_destroy (priv->tracked_contacts);
 	g_hash_table_destroy (priv->zones);
-	if (priv->notifyid1)
-		gconf_client_notify_remove (priv->conf_client, priv->notifyid1);
-	if (priv->notifyid2)
-		gconf_client_notify_remove (priv->conf_client, priv->notifyid2);
-	if (priv->notifyid3)
-		gconf_client_notify_remove (priv->conf_client, priv->notifyid3);
-
-	g_object_unref (priv->conf_client);
+	if (priv->notifyid)
+		g_signal_handler_disconnect (priv->settings, priv->notifyid);
+
+	g_object_unref (priv->settings);
 	g_mutex_free (priv->mutex);
 
 	/* Chain up to parent's finalize() method. */
@@ -1353,6 +1346,7 @@ e_cal_backend_contacts_constructed (GObject *object)
 	/* Chain up to parent's constructed() method. */
 	G_OBJECT_CLASS (e_cal_backend_contacts_parent_class)->
 		constructed (object);
+	setup_alarm (object, NULL);
 }
 
 /* Object initialization function for the contacts backend */
@@ -1381,10 +1375,8 @@ e_cal_backend_contacts_init (ECalBackendContacts *cbc)
 		(GDestroyNotify) g_free,
 		(GDestroyNotify) free_zone);
 
-	cbc->priv->conf_client = gconf_client_get_default ();
-	cbc->priv->notifyid1 = 0;
-	cbc->priv->notifyid2 = 0;
-	cbc->priv->notifyid3 = 0;
+	cbc->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
+	cbc->priv->notifyid = 0;
 	cbc->priv->update_alarms_id = 0;
 	cbc->priv->alarm_enabled = FALSE;
 	cbc->priv->alarm_interval = -1;
diff --git a/calendar/backends/http/e-cal-backend-http.c b/calendar/backends/http/e-cal-backend-http.c
index 97f05a9..4cfdf37 100644
--- a/calendar/backends/http/e-cal-backend-http.c
+++ b/calendar/backends/http/e-cal-backend-http.c
@@ -24,7 +24,6 @@
 #include <config.h>
 #include <string.h>
 #include <unistd.h>
-#include <gconf/gconf-client.h>
 #include <glib/gi18n-lib.h>
 
 #include <libsoup/soup.h>
diff --git a/configure.ac b/configure.ac
index d4e764a..b11f9cb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -35,7 +35,6 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 dnl Required Package Versions
 m4_define([glib_minimum_version], [2.32])
 m4_define([gtk_minimum_version], [3.2])
-m4_define([gconf_minimum_version], [2.0.0])		dnl XXX Just a Guess
 m4_define([gcr_minimum_version], [3.4])
 m4_define([gnome_keyring_minimum_version], [2.20.1])
 m4_define([libxml_minimum_version], [2.0.0])		dnl XXX Just a Guess
@@ -345,7 +344,6 @@ PKG_CHECK_MODULES(GNOME_PLATFORM,
 	[gio-2.0 >= glib_minimum_version
 	gmodule-2.0 >= glib_minimum_version
 	gtk+-3.0 >= gtk_minimum_version
-	gconf-2.0 >= gconf_minimum_version
 	libxml-2.0 >= libxml_minimum_version
 	libsoup-2.4 >= libsoup_minimum_version
 	libgdata >= libgdata_minimum_version])
@@ -354,15 +352,6 @@ if test x$os_win32 = xno; then
 	PKG_CHECK_MODULES(GIO_UNIX, [gio-unix-2.0])
 fi
 
-dnl ******************************
-dnl DBus-glib stuff, to initialize thread for GConf, which is using it
-dnl this is returned back only temporarily and wil lbe removed as soon
-dnl as eds will stop using GConf completely
-dnl ******************************
-PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1 >= 0.6)
-AC_SUBST(DBUS_GLIB_CFLAGS)
-AC_SUBST(DBUS_GLIB_LIBS)
-
 dnl *******************************
 dnl Check for GNOME Online Accounts
 dnl *******************************
@@ -1312,7 +1301,7 @@ PKG_CHECK_MODULES(SQLITE3, [sqlite3 >= sqlite_minimum_version])
 dnl ******************************
 dnl libedataserver flags
 dnl ******************************
-E_DATA_SERVER_DEPS="gio-2.0 gmodule-2.0 gnome-keyring-1 libxml-2.0 libsoup-2.4 gconf-2.0 $mozilla_nspr"
+E_DATA_SERVER_DEPS="gio-2.0 gmodule-2.0 gnome-keyring-1 libxml-2.0 libsoup-2.4 $mozilla_nspr"
 
 EVO_SET_COMPILE_FLAGS(E_DATA_SERVER, $E_DATA_SERVER_DEPS, $MANUAL_NSPR_CFLAGS, $MANUAL_NSPR_LIBS)
 AC_SUBST(E_DATA_SERVER_CFLAGS)
@@ -1321,7 +1310,7 @@ AC_SUBST(E_DATA_SERVER_LIBS)
 dnl ******************************
 dnl libedataserverui
 dnl ******************************
-E_DATA_SERVER_UI_DEPS="gtk+-3.0 libxml-2.0 gconf-2.0 libsoup-2.4"
+E_DATA_SERVER_UI_DEPS="gtk+-3.0 libxml-2.0 libsoup-2.4"
 
 EVO_SET_COMPILE_FLAGS(E_DATA_SERVER_UI, $E_DATA_SERVER_UI_DEPS, , )
 AC_SUBST(E_DATA_SERVER_UI_CFLAGS)
@@ -1334,7 +1323,7 @@ if test "x$enable_maintainer_mode" = "xyes" ; then
 	AC_SUBST(FACTORY_GTK_LIBS)
 fi
 
-E_BACKEND_DEPS="gio-2.0 gmodule-2.0 gnome-keyring-1 libsoup-2.4 libxml-2.0 gconf-2.0"
+E_BACKEND_DEPS="gio-2.0 gmodule-2.0 gnome-keyring-1 libsoup-2.4 libxml-2.0"
 
 dnl ******************************
 dnl libebackend flags
@@ -1346,7 +1335,7 @@ AC_SUBST(E_BACKEND_LIBS)
 dnl ******************************
 dnl evolution-addressbook flags
 dnl ******************************
-EVOLUTION_ADDRESSBOOK_DEPS="gio-2.0 libxml-2.0 gconf-2.0 libsoup-2.4 gnome-keyring-1"
+EVOLUTION_ADDRESSBOOK_DEPS="gio-2.0 libxml-2.0 libsoup-2.4 gnome-keyring-1"
 
 EVO_SET_COMPILE_FLAGS(EVOLUTION_ADDRESSBOOK, $EVOLUTION_ADDRESSBOOK_DEPS)
 AC_SUBST(EVOLUTION_ADDRESSBOOK_CFLAGS)
@@ -1355,7 +1344,7 @@ AC_SUBST(EVOLUTION_ADDRESSBOOK_LIBS)
 dnl ******************************
 dnl evolution-calendar flags
 dnl ******************************
-EVOLUTION_CALENDAR_DEPS="gio-2.0 libical >= libical_minimum_version libsoup-2.4 libxml-2.0 gconf-2.0 gnome-keyring-1"
+EVOLUTION_CALENDAR_DEPS="gio-2.0 libical >= libical_minimum_version libsoup-2.4 libxml-2.0 gnome-keyring-1"
 
 dnl *****
 dnl libical.pc from libical-0.43 has a bug in it's CFlags.
@@ -1530,12 +1519,6 @@ EVO_SUBST_SERVICE_RULE='%.service: %.service.in Makefile ; $(AM_V_GEN) sed -e "s
 AC_SUBST(EVO_SUBST_SERVICE_RULE)
 
 dnl ******************************
-dnl GConf stuff
-dnl ******************************
-AC_PATH_PROG(GCONFTOOL, gconftool-2, [no])
-AM_GCONF_SOURCE_2
-
-dnl ******************************
 dnl GLib stuff
 dnl ******************************
 GLIB_GSETTINGS
diff --git a/data/Makefile.am b/data/Makefile.am
index a31232a..f209552 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -1,12 +1,20 @@
 SUBDIRS = sources
 
-gsettings_SCHEMAS = \
-	org.gnome.Evolution.DefaultSources.gschema.xml
+gsettings_SCHEMAS =						\
+	org.gnome.Evolution.DefaultSources.gschema.xml		\
+	org.gnome.evolution-data-server.calendar.gschema.xml	\
+	org.gnome.evolution-data-server.addressbook.gschema.xml
+
+ INTLTOOL_XML_NOMERGE_RULE@
 
 @GSETTINGS_RULES@
 
-EXTRA_DIST = $(gsettings_SCHEMAS)
+convertdir = $(datadir)/GConf/gsettings
+convert_DATA = evolution-data-server.convert
+
+EXTRA_DIST = $(gsettings_SCHEMAS:.xml=.xml.in) \
+	     $(convert_DATA)
 
-CLEANFILES = $(gsettings_SCHEMAS:.xml=.valid)
+CLEANFILES = $(gsettings_SCHEMAS)
 
 -include $(top_srcdir)/git.mk
diff --git a/data/evolution-data-server.convert b/data/evolution-data-server.convert
new file mode 100644
index 0000000..1c39848
--- /dev/null
+++ b/data/evolution-data-server.convert
@@ -0,0 +1,7 @@
+[org.gnome.evolution-data-server.addressbook]
+self-contact-uid = /apps/evolution/addressbook/self/self_uid
+
+[org.gnome.evolution-data-server.calendar]
+contacts-reminder-enabled = /apps/evolution/calendar/other/use_ba_reminder
+contacts-reminder-interval = /apps/evolution/calendar/other/ba_reminder_interval
+contacts-reminder-units = /apps/evolution/calendar/other/ba_reminder_units
diff --git a/data/org.gnome.Evolution.DefaultSources.gschema.xml b/data/org.gnome.Evolution.DefaultSources.gschema.xml.in
similarity index 100%
rename from data/org.gnome.Evolution.DefaultSources.gschema.xml
rename to data/org.gnome.Evolution.DefaultSources.gschema.xml.in
diff --git a/data/org.gnome.evolution-data-server.addressbook.gschema.xml.in b/data/org.gnome.evolution-data-server.addressbook.gschema.xml.in
new file mode 100644
index 0000000..f010d31
--- /dev/null
+++ b/data/org.gnome.evolution-data-server.addressbook.gschema.xml.in
@@ -0,0 +1,8 @@
+<schemalist>
+  <schema gettext-domain="evolution-data-server" id="org.gnome.evolution-data-server.addressbook" path="/org/gnome/evolution-data-server/addressbook/">
+    <key name="self-contact-uid" type="s">
+      <default>''</default>
+      <_summary>Contact UID of a user</_summary>
+    </key>
+  </schema>
+</schemalist>
diff --git a/data/org.gnome.evolution-data-server.calendar.gschema.xml.in b/data/org.gnome.evolution-data-server.calendar.gschema.xml.in
new file mode 100644
index 0000000..4f65e01
--- /dev/null
+++ b/data/org.gnome.evolution-data-server.calendar.gschema.xml.in
@@ -0,0 +1,19 @@
+<schemalist>
+  <schema gettext-domain="evolution-data-server" id="org.gnome.evolution-data-server.calendar" path="/org/gnome/evolution-data-server/calendar/">
+    <key name="contacts-reminder-enabled" type="b">
+      <default>false</default>
+      <_summary>Birthday and anniversary reminder</_summary>
+      <_description>Whether to set a reminder for birthdays and anniversaries</_description>
+    </key>
+    <key name="contacts-reminder-interval" type="i">
+      <default>15</default>
+      <_summary>Birthday and anniversary reminder value</_summary>
+      <_description>Number of units for determining a birthday or anniversary reminder</_description>
+    </key>
+    <key name="contacts-reminder-units" type="s">
+      <default>'minutes'</default>
+      <_summary>Birthday and anniversary reminder units</_summary>
+      <_description>Units for a birthday or anniversary reminder, "minutes", "hours" or "days"</_description>
+    </key>
+  </schema>
+</schemalist>
diff --git a/libedataserver/libedataserver.pc.in b/libedataserver/libedataserver.pc.in
index 4cd47bc..d746a19 100644
--- a/libedataserver/libedataserver.pc.in
+++ b/libedataserver/libedataserver.pc.in
@@ -10,6 +10,6 @@ privincludedir= privincludedir@
 Name: libedataserver
 Description: Utility library for Evolution Data Server
 Version: @VERSION@
-Requires: gio-2.0 gmodule-2.0 camel-1.2 gnome-keyring-1 libxml-2.0 gconf-2.0 libsoup-2.4
+Requires: gio-2.0 gmodule-2.0 camel-1.2 gnome-keyring-1 libxml-2.0 libsoup-2.4
 Libs: -L${libdir} -ledataserver- API_VERSION@
 Cflags: -I${privincludedir}
diff --git a/libedataserverui/e-name-selector-entry.c b/libedataserverui/e-name-selector-entry.c
index 3abec38..bb3f6b9 100644
--- a/libedataserverui/e-name-selector-entry.c
+++ b/libedataserverui/e-name-selector-entry.c
@@ -24,7 +24,6 @@
 #include <config.h>
 #include <string.h>
 #include <glib/gi18n-lib.h>
-#include <gconf/gconf-client.h>
 
 #include <camel/camel.h>
 #include <libebackend/libebackend.h>
@@ -40,6 +39,8 @@
 struct _ENameSelectorEntryPrivate {
 
 	ESourceRegistry *registry;
+	gint minimum_query_length;
+	gboolean show_address;
 
 	PangoAttrList *attr_list;
 	EContactStore *contact_store;
@@ -71,7 +72,9 @@ struct _ENameSelectorEntryPrivate {
 
 enum {
 	PROP_0,
-	PROP_REGISTRY
+	PROP_REGISTRY,
+	PROP_MINIMUM_QUERY_LENGTH,
+	PROP_SHOW_ADDRESS
 };
 
 enum {
@@ -80,8 +83,6 @@ enum {
 };
 
 static guint signals[LAST_SIGNAL] = { 0 };
-static guint COMPLETION_CUE_MIN_LEN = 0;
-static gboolean COMPLETION_FORCE_SHOW_ADDRESS = FALSE;
 #define ENS_DEBUG(x)
 
 G_DEFINE_TYPE_WITH_CODE (
@@ -122,6 +123,18 @@ name_selector_entry_set_property (GObject *object,
 				E_NAME_SELECTOR_ENTRY (object),
 				g_value_get_object (value));
 			return;
+
+		case PROP_MINIMUM_QUERY_LENGTH:
+			e_name_selector_entry_set_minimum_query_length (
+				E_NAME_SELECTOR_ENTRY (object),
+				g_value_get_int (value));
+			return;
+
+		case PROP_SHOW_ADDRESS:
+			e_name_selector_entry_set_show_address (
+				E_NAME_SELECTOR_ENTRY (object),
+				g_value_get_boolean (value));
+			return;
 	}
 
 	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -140,6 +153,20 @@ name_selector_entry_get_property (GObject *object,
 				e_name_selector_entry_get_registry (
 				E_NAME_SELECTOR_ENTRY (object)));
 			return;
+
+		case PROP_MINIMUM_QUERY_LENGTH:
+			g_value_set_int (
+				value,
+				e_name_selector_entry_get_minimum_query_length (
+				E_NAME_SELECTOR_ENTRY (object)));
+			return;
+
+		case PROP_SHOW_ADDRESS:
+			g_value_set_boolean (
+				value,
+				e_name_selector_entry_get_show_address (
+				E_NAME_SELECTOR_ENTRY (object)));
+			return;
 	}
 
 	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -310,6 +337,29 @@ e_name_selector_entry_class_init (ENameSelectorEntryClass *class)
 			G_PARAM_CONSTRUCT |
 			G_PARAM_STATIC_STRINGS));
 
+	g_object_class_install_property (
+		object_class,
+		PROP_MINIMUM_QUERY_LENGTH,
+		g_param_spec_int (
+			"minimum-query-length",
+			"Minimum Query Length",
+			NULL,
+			1, G_MAXINT,
+			3,
+			G_PARAM_READWRITE |
+			G_PARAM_STATIC_STRINGS));
+
+	g_object_class_install_property (
+		object_class,
+		PROP_SHOW_ADDRESS,
+		g_param_spec_boolean (
+			"show-address",
+			"Show Address",
+			NULL,
+			FALSE,
+			G_PARAM_READWRITE |
+			G_PARAM_STATIC_STRINGS));
+
 	signals[UPDATED] = g_signal_new (
 		"updated",
 		E_TYPE_NAME_SELECTOR_ENTRY,
@@ -818,7 +868,8 @@ build_textrep_for_contact (EContact *contact,
 }
 
 static gboolean
-contact_match_cue (EContact *contact,
+contact_match_cue (ENameSelectorEntry *name_selector_entry,
+		   EContact *contact,
                    const gchar *cue_str,
                    EContactField *matched_field,
                    gint *matched_field_rank)
@@ -834,7 +885,7 @@ contact_match_cue (EContact *contact,
 	g_assert (contact);
 	g_assert (cue_str);
 
-	if (g_utf8_strlen (cue_str, -1) < COMPLETION_CUE_MIN_LEN)
+	if (g_utf8_strlen (cue_str, -1) < name_selector_entry->priv->minimum_query_length)
 		return FALSE;
 
 	cue_len = strlen (cue_str);
@@ -916,7 +967,7 @@ find_existing_completion (ENameSelectorEntry *name_selector_entry,
 		if (!current_contact)
 			continue;
 
-		matches = contact_match_cue (current_contact, cue_str, &current_field, &current_field_rank);
+		matches = contact_match_cue (name_selector_entry, current_contact, cue_str, &current_field, &current_field_rank);
 		if (matches && current_field_rank < best_field_rank) {
 			best_contact    = current_contact;
 			best_field_rank = current_field_rank;
@@ -1025,7 +1076,7 @@ type_ahead_complete (ENameSelectorEntry *name_selector_entry)
 	text = gtk_entry_get_text (GTK_ENTRY (name_selector_entry));
 	get_range_at_position (text, cursor_pos, &range_start, &range_end);
 	range_len = range_end - range_start;
-	if (range_len < COMPLETION_CUE_MIN_LEN)
+	if (range_len < priv->minimum_query_length)
 		return;
 
 	destination = find_destination_at_position (name_selector_entry, cursor_pos);
@@ -1112,7 +1163,7 @@ update_completion_model (ENameSelectorEntry *name_selector_entry)
 	if (cursor_pos >= 0)
 		get_range_at_position (text, cursor_pos, &range_start, &range_end);
 
-	if (range_end - range_start >= COMPLETION_CUE_MIN_LEN && cursor_pos == range_end) {
+	if (range_end - range_start >= name_selector_entry->priv->minimum_query_length && cursor_pos == range_end) {
 		gchar *cue_str;
 
 		cue_str = get_entry_substring (name_selector_entry, range_start, range_end);
@@ -1196,9 +1247,10 @@ modify_destination_at_position (ENameSelectorEntry *name_selector_entry,
 }
 
 static gchar *
-get_destination_textrep (EDestination *destination)
+get_destination_textrep (ENameSelectorEntry *name_selector_entry,
+			 EDestination *destination)
 {
-	gboolean show_email = COMPLETION_FORCE_SHOW_ADDRESS;
+	gboolean show_email = e_name_selector_entry_get_show_address (name_selector_entry);
 	EContact *contact;
 
 	g_return_val_if_fail (destination != NULL, NULL);
@@ -1215,7 +1267,7 @@ get_destination_textrep (EDestination *destination)
 		}
 	}
 
-	/* do not show emails for contact lists even user forces it in gconf */
+	/* do not show emails for contact lists even user forces it */
 	if (show_email && contact && e_contact_get (contact, E_CONTACT_IS_LIST))
 		show_email = FALSE;
 
@@ -1245,7 +1297,7 @@ sync_destination_at_position (ENameSelectorEntry *name_selector_entry,
 		return;
 	}
 
-	address = get_destination_textrep (destination);
+	address = get_destination_textrep (name_selector_entry, destination);
 	address_len = g_utf8_strlen (address, -1);
 
 	if (cursor_pos) {
@@ -1718,7 +1770,7 @@ entry_activate (ENameSelectorEntry *name_selector_entry)
 		return;
 
 	range_len = range_end - range_start;
-	if (range_len < COMPLETION_CUE_MIN_LEN)
+	if (range_len < priv->minimum_query_length)
 		return;
 
 	destination = find_destination_at_position (name_selector_entry, cursor_pos);
@@ -1806,7 +1858,7 @@ sanitize_entry (ENameSelectorEntry *name_selector_entry)
 		else {
 			gchar *text;
 
-			text = get_destination_textrep (dest);
+			text = get_destination_textrep (name_selector_entry, dest);
 			if (text) {
 				if (str->str && str->str[0])
 					g_string_append (str, ", ");
@@ -1852,7 +1904,7 @@ user_focus_in (ENameSelectorEntry *name_selector_entry,
 		if (dest) {
 			gchar *text;
 
-			text = get_destination_textrep (dest);
+			text = get_destination_textrep (name_selector_entry, dest);
 			if (text) {
 				if (str->str && str->str[0])
 					g_string_append (str, ", ");
@@ -2240,7 +2292,7 @@ destination_row_changed (ENameSelectorEntry *name_selector_entry,
 
 	gtk_editable_delete_text (GTK_EDITABLE (name_selector_entry), range_start, range_end);
 
-	text = get_destination_textrep (destination);
+	text = get_destination_textrep (name_selector_entry, destination);
 	gtk_editable_insert_text (GTK_EDITABLE (name_selector_entry), text, -1, &range_start);
 	g_free (text);
 
@@ -2294,7 +2346,7 @@ destination_row_inserted (ENameSelectorEntry *name_selector_entry,
 	if (comma_before)
 		gtk_editable_insert_text (GTK_EDITABLE (name_selector_entry), ", ", -1, &insert_pos);
 
-	text = get_destination_textrep (destination);
+	text = get_destination_textrep (name_selector_entry, destination);
 	gtk_editable_insert_text (GTK_EDITABLE (name_selector_entry), text, -1, &insert_pos);
 	g_free (text);
 
@@ -3068,22 +3120,14 @@ static void
 e_name_selector_entry_init (ENameSelectorEntry *name_selector_entry)
 {
 	GtkCellRenderer *renderer;
-	GConfClient *gconf;
 
 	name_selector_entry->priv =
 		E_NAME_SELECTOR_ENTRY_GET_PRIVATE (name_selector_entry);
 
 	g_queue_init (&name_selector_entry->priv->cancellables);
 
-	/* read minimum_query_length from gconf*/
-	gconf = gconf_client_get_default ();
-	if (COMPLETION_CUE_MIN_LEN == 0) {
-		if ((COMPLETION_CUE_MIN_LEN = gconf_client_get_int (gconf, MINIMUM_QUERY_LENGTH, NULL)))
-			;
-		else COMPLETION_CUE_MIN_LEN = 3;
-	}
-	COMPLETION_FORCE_SHOW_ADDRESS = gconf_client_get_bool (gconf, FORCE_SHOW_ADDRESS, NULL);
-	g_object_unref (G_OBJECT (gconf));
+	name_selector_entry->priv->minimum_query_length = 3;
+	name_selector_entry->priv->show_address = FALSE;
 
 	/* Edit signals */
 
@@ -3242,6 +3286,87 @@ e_name_selector_entry_set_registry (ENameSelectorEntry *name_selector_entry,
 }
 
 /**
+ * e_name_selector_entry_get_minimum_query_length:
+ * @name_selector_entry: an #ENameSelectorEntry
+ *
+ * Returns: Minimum length of query before completion starts
+ *
+ * Since: 3.6
+ **/
+gint
+e_name_selector_entry_get_minimum_query_length (ENameSelectorEntry *name_selector_entry)
+{
+	g_return_val_if_fail (E_IS_NAME_SELECTOR_ENTRY (name_selector_entry), -1);
+
+	return name_selector_entry->priv->minimum_query_length;
+}
+
+/**
+ * e_name_selector_entry_set_minimum_query_length:
+ * @name_selector_entry: an #ENameSelectorEntry
+ * @length: minimum query length
+ *
+ * Sets minimum length of query before completion starts.
+ *
+ * Since: 3.6
+ **/
+void
+e_name_selector_entry_set_minimum_query_length (ENameSelectorEntry *name_selector_entry,
+						gint length)
+{
+	g_return_if_fail (E_IS_NAME_SELECTOR_ENTRY (name_selector_entry));
+	g_return_if_fail (length > 0);
+
+	if (name_selector_entry->priv->minimum_query_length == length)
+		return;
+
+	name_selector_entry->priv->minimum_query_length = length;
+
+	g_object_notify (G_OBJECT (name_selector_entry), "minimum-query-length");
+}
+
+/**
+ * e_name_selector_entry_get_show_address:
+ * @name_selector_entry: an #ENameSelectorEntry
+ *
+ * Returns: Whether always show email address for an auto-completed contact.
+ *
+ * Since: 3.6
+ **/
+gboolean
+e_name_selector_entry_get_show_address (ENameSelectorEntry *name_selector_entry)
+{
+	g_return_val_if_fail (E_IS_NAME_SELECTOR_ENTRY (name_selector_entry), FALSE);
+
+	return name_selector_entry->priv->show_address;
+}
+
+/**
+ * e_name_selector_entry_set_show_address:
+ * @name_selector_entry: an #ENameSelectorEntry
+ * @show: new value to set
+ *
+ * Sets whether always show email address for an auto-completed contact.
+ *
+ * Since: 3.6
+ **/
+void
+e_name_selector_entry_set_show_address (ENameSelectorEntry *name_selector_entry,
+					gboolean show)
+{
+	g_return_if_fail (E_IS_NAME_SELECTOR_ENTRY (name_selector_entry));
+
+	if ((name_selector_entry->priv->show_address ? 1 : 0) == (show ? 1 : 0))
+		return;
+
+	name_selector_entry->priv->show_address = show;
+
+	sanitize_entry (name_selector_entry);
+
+	g_object_notify (G_OBJECT (name_selector_entry), "show-address");
+}
+
+/**
  * e_name_selector_entry_peek_contact_store:
  * @name_selector_entry: an #ENameSelectorEntry
  *
diff --git a/libedataserverui/e-name-selector-entry.h b/libedataserverui/e-name-selector-entry.h
index ce77a67..1ceb5e0 100644
--- a/libedataserverui/e-name-selector-entry.h
+++ b/libedataserverui/e-name-selector-entry.h
@@ -54,15 +54,6 @@
 	(G_TYPE_INSTANCE_GET_CLASS \
 	((obj), E_TYPE_NAME_SELECTOR_ENTRY, ENameSelectorEntryClass))
 
-#define MINIMUM_QUERY_LENGTH "/apps/evolution/addressbook/completion/minimum_query_length"
-
-/**
- * FORCE_SHOW_ADDRESS:
- *
- * Since: 2.24
- **/
-#define FORCE_SHOW_ADDRESS   "/apps/evolution/addressbook/completion/show_address"
-
 G_BEGIN_DECLS
 
 typedef struct _ENameSelectorEntry ENameSelectorEntry;
@@ -92,6 +83,16 @@ ESourceRegistry *
 void		e_name_selector_entry_set_registry
 						(ENameSelectorEntry *name_selector_entry,
 						 ESourceRegistry *registry);
+gint		e_name_selector_entry_get_minimum_query_length
+						(ENameSelectorEntry *name_selector_entry);
+void		e_name_selector_entry_set_minimum_query_length
+						(ENameSelectorEntry *name_selector_entry,
+						 gint length);
+gboolean	e_name_selector_entry_get_show_address
+						(ENameSelectorEntry *name_selector_entry);
+void		e_name_selector_entry_set_show_address
+						(ENameSelectorEntry *name_selector_entry,
+						 gboolean show);
 EContactStore *	e_name_selector_entry_peek_contact_store
 						(ENameSelectorEntry *name_selector_entry);
 void		e_name_selector_entry_set_contact_store
diff --git a/po/POTFILES.in b/po/POTFILES.in
index a3c7f55..987da09 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -179,6 +179,8 @@ camel/providers/sendmail/camel-sendmail-provider.c
 camel/providers/sendmail/camel-sendmail-transport.c
 camel/providers/smtp/camel-smtp-provider.c
 camel/providers/smtp/camel-smtp-transport.c
+data/org.gnome.evolution-data-server.addressbook.gschema.xml.in
+data/org.gnome.evolution-data-server.calendar.gschema.xml.in
 libebackend/e-authentication-mediator.c
 libebackend/e-authentication-session.c
 libebackend/e-server-side-source.c
diff --git a/services/evolution-addressbook-factory/evolution-addressbook-factory.c b/services/evolution-addressbook-factory/evolution-addressbook-factory.c
index f99da5c..ffb69b7 100644
--- a/services/evolution-addressbook-factory/evolution-addressbook-factory.c
+++ b/services/evolution-addressbook-factory/evolution-addressbook-factory.c
@@ -21,8 +21,6 @@
 #include <stdlib.h>
 #include <glib/gi18n.h>
 
-#include <dbus/dbus-glib.h>
-
 #ifdef ENABLE_MAINTAINER_MODE
 #include <gtk/gtk.h>
 #endif
@@ -102,9 +100,6 @@ main (gint argc,
 	g_type_init ();
 #endif
 
-	/* this is to initialize threading for dbus-glib used by GConf */
-	dbus_g_thread_init ();
-
 	context = g_option_context_new (NULL);
 	g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
 	g_option_context_parse (context, &argc, &argv, &error);
diff --git a/services/evolution-calendar-factory/evolution-calendar-factory.c b/services/evolution-calendar-factory/evolution-calendar-factory.c
index 36fa064..a80731b 100644
--- a/services/evolution-calendar-factory/evolution-calendar-factory.c
+++ b/services/evolution-calendar-factory/evolution-calendar-factory.c
@@ -21,8 +21,6 @@
 #include <stdlib.h>
 #include <glib/gi18n.h>
 
-#include <dbus/dbus-glib.h>
-
 #ifdef ENABLE_MAINTAINER_MODE
 #include <gtk/gtk.h>
 #endif
@@ -106,9 +104,6 @@ main (gint argc,
 	g_type_init ();
 #endif
 
-	/* this is to initialize threading for dbus-glib used by GConf */
-	dbus_g_thread_init ();
-
 	context = g_option_context_new (NULL);
 	g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
 	g_option_context_parse (context, &argc, &argv, &error);
diff --git a/tests/libedataserverui/test-contact-store.c b/tests/libedataserverui/test-contact-store.c
index 5be64ae..2e19214 100644
--- a/tests/libedataserverui/test-contact-store.c
+++ b/tests/libedataserverui/test-contact-store.c
@@ -55,7 +55,7 @@ create_text_column_for_field (EContactField field_id)
 }
 
 static gint
-start_test (const gchar *gconf_path)
+start_test (const gchar *param)
 {
 	EContactStore *contact_store;
 	GtkTreeModel *model_sort;
@@ -117,16 +117,16 @@ gint
 main (gint argc,
       gchar **argv)
 {
-	const gchar *gconf_path;
+	const gchar *param;
 
 	gtk_init (&argc, &argv);
 
 	if (argc < 2)
-		gconf_path = "/apps/evolution/addressbook/sources";
+		param = "???";
 	else
-		gconf_path = argv[1];
+		param = argv[1];
 
-	g_idle_add ((GSourceFunc) start_test, (gpointer) gconf_path);
+	g_idle_add ((GSourceFunc) start_test, (gpointer) param);
 
 	gtk_main ();
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]