tracker r1195 - in trunk: . src src/libtracker-common src/tracker-preferences



Author: asaleem
Date: Tue Mar  4 03:21:03 2008
New Revision: 1195
URL: http://svn.gnome.org/viewvc/tracker?rev=1195&view=rev

Log:
start libtracker-common, migrate tracker-preferences to it

Added:
   trunk/src/libtracker-common/
   trunk/src/libtracker-common/Makefile.am
   trunk/src/libtracker-common/tracker-configuration.c
   trunk/src/libtracker-common/tracker-configuration.h
Removed:
   trunk/src/tracker-preferences/tracker-configuration.c
   trunk/src/tracker-preferences/tracker-configuration.h
Modified:
   trunk/ChangeLog
   trunk/configure.ac
   trunk/src/Makefile.am
   trunk/src/tracker-preferences/Makefile.am
   trunk/src/tracker-preferences/tracker-preferences.c

Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac	(original)
+++ trunk/configure.ac	Tue Mar  4 03:21:03 2008
@@ -813,6 +813,7 @@
 	src/text-filters/ooo_converter/Makefile
 	src/tracker-extract/Makefile
 	src/tracker-thumbnailer/Makefile
+	src/libtracker-common/Makefile
 	src/trackerd/Makefile
 	src/libtracker/Makefile
 	src/libtracker-gtk/Makefile

Modified: trunk/src/Makefile.am
==============================================================================
--- trunk/src/Makefile.am	(original)
+++ trunk/src/Makefile.am	Tue Mar  4 03:21:03 2008
@@ -2,7 +2,7 @@
 tracker_gui_dir = tracker-search-tool
 endif
 
-if !USING_EXTERNAL_QDBM 
+if !USING_EXTERNAL_QDBM
 qdbm_dir = qdbm
 endif
 
@@ -18,5 +18,5 @@
 trackerapplet_dir = tracker-applet
 endif
 
-SUBDIRS = libstemmer xdgmime $(qdbm_dir) text-filters trackerd libtracker tracker-extract tracker-thumbnailer $(libtrackergtk_dir) $(tracker_gui_dir) $(trackerapplet_dir) $(tracker_preferences_dir)
+SUBDIRS = libstemmer xdgmime $(qdbm_dir) text-filters libtracker-common trackerd libtracker tracker-extract tracker-thumbnailer $(libtrackergtk_dir) $(tracker_gui_dir) $(trackerapplet_dir) $(tracker_preferences_dir)
 

Added: trunk/src/libtracker-common/Makefile.am
==============================================================================
--- (empty file)
+++ trunk/src/libtracker-common/Makefile.am	Tue Mar  4 03:21:03 2008
@@ -0,0 +1,9 @@
+INCLUDES = $(GLIB2_CFLAGS)
+
+lib_LTLIBRARIES = libtrackercommon.la
+
+libtrackercommon_la_SOURCES = tracker-configuration.c
+libtrackercommon_la_LDFLAGS = -version-info 0:0:0
+libtrackercommon_la_LIBADD = $(GLIB2_LIBS)
+
+noinst_HEADERS = tracker-configuration.h

Added: trunk/src/libtracker-common/tracker-configuration.c
==============================================================================
--- (empty file)
+++ trunk/src/libtracker-common/tracker-configuration.c	Tue Mar  4 03:21:03 2008
@@ -0,0 +1,477 @@
+/**
+ * Tracker - indexer and metadata database engine
+ * Copyright (c) 2007 Saleem Abdulrasool (compnerd compnerd org)
+ *
+ * This library 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 2 of the license, or (at your otpion) any later
+ * version.
+ *
+ * This library 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 library; if not, write to the Free Software Foundation, Inc., 51
+ * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ **/
+
+#include "tracker-configuration.h"
+
+#include <string.h>
+
+static gboolean dirty = FALSE;
+static gchar *filename = NULL;
+static GKeyFile *configuration = NULL;
+
+const LanguageMapEntry LanguageMap[] = {
+	{ "da", "Danish" },
+	{ "nl", "Duch" },
+	{ "en", "English" },
+	{ "fi", "Finnish" },
+	{ "fr", "French" },
+	{ "de", "German" },
+	{ "it", "Italian" },
+	{ "nb", "Norwegian" },
+	{ "pt", "Portugese" },
+	{ "ru", "Russian" },
+	{ "es", "Spanish" },
+	{ "sv", "Swedish" },
+	{ NULL, NULL },
+};
+
+
+static gchar *
+get_default_language_code (void)
+{
+	gchar **langs, **lang;
+
+	/* get languages for user's locale */
+	langs = (char **)g_get_language_names ();
+
+	for (lang = langs; *lang; lang++) {
+		if (strlen (*lang) > 1) {
+			gint i;
+			for (i = 0; LanguageMap[i].language; i++) {
+				if (g_str_has_prefix (*lang, LanguageMap[i].language)) {
+					return g_strndup (*lang, 2);
+				}
+			}
+		}
+	}
+
+	return g_strdup ("en");
+}
+
+static void
+write_default_config (void)
+{
+	gchar * contents = NULL, * language = NULL;
+
+	language = get_default_language_code ();
+	contents = g_strconcat ("[General]\n",
+				"# Log verbosity"
+				"# Valid values are:\n"
+				"#    0 (displays/logs only errors)\n"
+				"#    1 (minimal)\n"
+				"#    2 (detailed)\n"
+				"#    3 (debug)\n",
+				"Verbosity = 0\n",
+				"# Set the initial sleeping time, in seconds\n",
+				"InitialSleep = 45\n\n",
+				"# Minimizes the use of memory but may slow indexing down\n",
+				"LowMemoryMode = false\n",
+				"[Watches]\n",
+				"# List of directory roots to index and watch separated by semicolons\n",
+				"WatchDirectoryRoots =", g_get_home_dir (), ";\n",
+				"# List of directory roots to index but not watch (no live updates but are\n"
+				"# refreshed when trackerd is next restarted) separated by semicolons\n",
+				"CrawlDirectory =\n",
+				"# List of directory roots to not index and not watch separated by semicolons\n",
+				"NoWatchDirectory =\n",
+				"# Set to false to prevent watching of any kind\n",
+				"EnableWatching = true\n\n",
+				"[Indexing]\n",
+				"# Throttles the indexing process.  Allowable values are 0 - 20.  Higher values\n"
+				"# decrease indexing speed\n",
+				"Throttle = 0\n",
+				"# Disables the indexing process\n",
+				"EnableIndexing = true\n",
+				"# Enables indexing of a file's text contents\n",
+				"EnableFileContentIndexing = true\n",
+				"# Enables generation of thumbnails\n",
+				"EnableThumbnails = false\n",
+				"# Enables fast index merges but may hog the disk for extended periods.\n",
+				"EnableFastMerges = false\n",
+				"# List of partial file patterns (glob) separated by semicolons that specify files\n"
+				"# to not index (basic stat info is only indexed for files that match these patterns)\n",
+				"NoIndexFileTypes =;\n",
+				"# Sets minimum length of words to index\n",
+				"MinWordLength = 3\n",
+				"# Sets the maximum length of words to index (words are cropped if bigger than this)\n",
+				"MaxWordLength = 30\n",
+				"# Sets the language specific stemmer and stopword list to use\n"
+				"# Valid values are:\n"
+				"#   'en'  (english)\n"
+				"#   'da'  (danish)\n"
+				"#   'nl'  (dutch)\n"
+				"#   'fi'  (finnish)\n"
+				"#   'fr'  (french)\n"
+				"#   'de'  (german)\n"
+				"#   'it'  (italian)\n"
+				"#   'nb'  (norwegian)\n"
+				"#   'pt'  (portugese)\n"
+				"#   'ru'  (russian)\n"
+				"#   'es'  (spanish)\n"
+				"#   'sv'  (swedish)\n",
+				"Language = ", language, "\n",
+				"# Enables use of language-specific stemmer\n",
+				"EnableStemmer = true\n",
+				"# Set to true to prevent tracker from descending into mounted directory trees\n",
+				"SkipMountPoints = false\n",
+				"# Disable all indexing when on battery\n",
+				"BatteryIndex = true\n",
+				"# Disable initial index sweep when on battery\n",
+				"BatteryIndexInitial = false\n",
+				"# Pause indexer when disk space equals or goes below this value in %% of the $HOME filesystem\n"
+				"# Set it to a value smaller than zero to disable pausing at all.\n",
+				"LowDiskSpaceLimit = 1\n\n",
+				"[Emails]\n",
+				"# Index email messages from Evolution\n",
+				"IndexEvolutionEmails = true\n",
+				"# Index email messages from Thunderbird\n",
+				"IndexThunderbirdEmails = true\n\n",
+				"[Performance]\n",
+				"# Maximum size of text in bytes to index from a file's text contents\n",
+				"MaxTextToIndex = 1048576\n",
+				"# Maximum number of unique words to index from a file's text contents\n",
+				"MaxWordsToIndex = 10000\n",
+				"# Specifies the number of entities to index before determining whether to perform\n"
+				"# index optimization\n",
+				"OptimizationSweepCount = 10000\n",
+				"# Sets the maximum bucket count for the indexer\n",
+				"MaxBucketCount = 524288\n",
+				"# Sets the minimum bucket count for the indexer\n",
+				"MinBucketCount = 65536\n",
+				"# Sets number of divisions of the index file\n",
+				"Divisions = 4\n",
+				"# Selects the desired ratio of used records to buckets to be used when optimizing\n"
+				"# the index (should be a value between 0 and 4)\n",
+				"BucketRatio = 1\n",
+				"# Alters how much padding is used to prevent index relocations.  Higher values improve\n"
+				"# indexing speed but waste more disk space.  Values should be in the range 1-8.\n",
+				"Padding = 2\n",
+				"# sets stack size of trackerd threads in bytes.  The default on Linux is 8Mb (0 will use\n"
+				"# the system default).\n",
+				"ThreadStackSize = 0\n",
+				NULL);
+
+	g_file_set_contents (filename, contents, strlen (contents), NULL);
+	g_free (contents);
+}
+
+static gchar *
+string_replace (const gchar * haystack, gchar * needle, gchar * replacement)
+{
+	GString *str;
+	char *start_pos = NULL, *end_pos = NULL;
+	gint needle_len = 0;
+
+	g_return_val_if_fail (haystack, NULL);
+	g_return_val_if_fail (needle, NULL);
+	g_return_val_if_fail (g_utf8_validate (haystack, -1, NULL), NULL);
+
+	str = g_string_new ("");
+	needle_len = g_utf8_strlen(needle, -1);
+
+	while (end_pos = strstr (start_pos, needle)) {
+		str = g_string_append_len (str, start_pos, start_pos - end_pos);
+		if (replacement) {
+			str = g_string_append (str, replacement);
+		}
+
+		start_pos = end_pos + needle_len;
+	}
+
+	return g_string_free (str, FALSE);
+}
+
+
+void
+tracker_configuration_load (void)
+{
+	GError *error = NULL;
+
+	filename = g_build_filename (g_get_user_config_dir (), "tracker", "tracker.cfg", NULL);
+
+	if (! g_file_test (filename, G_FILE_TEST_EXISTS)) {
+		gchar *tracker_dir = g_build_filename (g_get_user_config_dir (), "tracker", NULL);
+
+		if (! g_file_test (tracker_dir, G_FILE_TEST_EXISTS)) {
+			g_mkdir_with_parents (tracker_dir, 0700);
+		}
+
+		g_free (tracker_dir);
+
+		write_default_config();
+	}
+
+	g_key_file_load_from_file (configuration, filename, G_KEY_FILE_KEEP_COMMENTS, &error);
+	if (error)
+		g_error ("failed: g_key_file_load_from_file(): %s\n", error->message);
+}
+
+void
+tracker_configuration_save (void)
+{
+	gsize length = 0;
+	GError *error = NULL;
+	gchar *data = NULL, *contents = NULL;
+
+	if (! dirty)
+		return;
+
+	data = g_key_file_to_data (configuration, &length, &error);
+	if (error)
+		g_error ("failed: g_key_file_to_data(): %s\n", error->message);
+
+	contents = string_replace (data, "\n\n\n", "\n\n");
+	g_free (data);
+
+	g_file_set_contents (filename, contents, -1, NULL);
+	g_free (contents);
+
+	dirty = FALSE;
+}
+
+void
+tracker_configuration_free (void)
+{
+	if (dirty)
+		tracker_configuration_save ();
+
+	g_free (filename);
+	g_key_file_free (configuration);
+}
+
+#define TRACKER_CONFIGURATION_GET_(TypeName, GTypeName, Null)                                   \
+GTypeName                                                                                       \
+tracker_configuration_get_##TypeName (const gchar * const key, GError ** error)                 \
+{                                                                                               \
+	gchar **data = g_strsplit (key, "/", 3);                                                \
+	GTypeName value = Null;                                                                 \
+                                                                                                \
+	if (g_key_file_has_key (configuration, data[1], data[2], error)) {                      \
+		value = g_key_file_get_##TypeName (configuration, data[1], data[2], error);     \
+	}                                                                                       \
+                                                                                                \
+	g_strfreev (data);                                                                      \
+	return value;                                                                           \
+}
+
+#define TRACKER_CONFIGURATION_SET_(TypeName, GTypeName)                                         \
+void                                                                                            \
+tracker_configuration_set_##TypeName (const gchar * const key, const GTypeName value)           \
+{                                                                                               \
+	gchar **data = g_strsplit (key, "/", 3);                                                \
+                                                                                                \
+	g_key_file_set_##TypeName (configuration, data[1], data[2], value);                     \
+                                                                                                \
+	g_strfreev (data);                                                                      \
+	dirty = TRUE;                                                                           \
+}
+
+TRACKER_CONFIGURATION_GET_(boolean, gboolean, FALSE)
+TRACKER_CONFIGURATION_SET_(boolean, gboolean)
+
+TRACKER_CONFIGURATION_GET_(integer, gint, 0)
+TRACKER_CONFIGURATION_SET_(integer, gint)
+
+TRACKER_CONFIGURATION_GET_(string, gchar *, NULL)
+TRACKER_CONFIGURATION_SET_(string, gchar *)
+
+#undef TRACKER_CONFIGURATION_GET_
+#undef TRACKER_CONFIGURATION_SET_
+
+#define TRACKER_CONFIGURATION_LIST_GET_(TypeName, GTypeName)                                                    \
+static GSList *                                                                                                 \
+tracker_configuration_get_##TypeName##_list (const gchar * const key, GError ** error)                          \
+{                                                                                                               \
+	gchar **data = NULL;                                                                                    \
+	GSList *retval = NULL;                                                                                  \
+                                                                                                                \
+	g_return_val_if_fail (key, NULL);                                                                       \
+                                                                                                                \
+	data = g_strsplit (key, "/", 3);                                                                        \
+                                                                                                                \
+	if (g_key_file_has_key (configuration, data[1], data[2], error)) {                                      \
+		gsize length = 0;                                                                               \
+		GTypeName *values = NULL;                                                                       \
+                                                                                                                \
+		values = g_key_file_get_##TypeName##_list (configuration, data[1], data[2], &length, error);    \
+                                                                                                                \
+		if (values) {                                                                                   \
+			gsize i = 0;                                                                            \
+                                                                                                                \
+			for (i = 0; i < length; i++) {                                                          \
+				GTypeName *value = g_new0 (GTypeName, 1);                                       \
+				*value = values[i];                                                             \
+                                                                                                                \
+				retval = g_slist_prepend (retval, value);                                       \
+			}                                                                                       \
+                                                                                                                \
+			g_free (values);                                                                        \
+		}                                                                                               \
+	}                                                                                                       \
+                                                                                                                \
+	g_strfreev (data);                                                                                      \
+	return g_slist_reverse (retval);                                                                        \
+}
+
+#define TRACKER_CONFIGURATION_LIST_SET_(TypeName, GTypeName)                                    \
+static void                                                                                     \
+tracker_configuration_set_##TypeName##_list (const gchar * const key, GSList * value)           \
+{                                                                                               \
+	gchar **data = NULL;                                                                    \
+	GTypeName *list = NULL;                                                                 \
+	guint length = 0;                                                                       \
+                                                                                                \
+	g_return_if_fail (key);                                                                 \
+	g_return_if_fail (value);                                                               \
+                                                                                                \
+	data = g_strsplit (key, "/", 3);                                                        \
+	length = g_slist_length (value);                                                        \
+	list = g_new0 (GTypeName, length);                                                      \
+                                                                                                \
+	guint i;                                                                                \
+	const GSList *tmp;                                                                      \
+	for (i = 0, tmp = value; tmp; tmp = tmp->next, i++) {                                   \
+		if (tmp->data) {                                                                \
+			GTypeName *n = tmp->data;                                               \
+			list[i] = *n;                                                           \
+		}                                                                               \
+	}                                                                                       \
+                                                                                                \
+	g_key_file_set_##TypeName##_list (configuration, data[1], data[2], list, length);       \
+                                                                                                \
+	g_free (list);                                                                          \
+	g_strfreev (data);                                                                      \
+}
+
+TRACKER_CONFIGURATION_LIST_GET_(boolean, gboolean)
+TRACKER_CONFIGURATION_LIST_SET_(boolean, gboolean)
+
+TRACKER_CONFIGURATION_LIST_GET_(double, gdouble)
+TRACKER_CONFIGURATION_LIST_SET_(double, gdouble)
+
+TRACKER_CONFIGURATION_LIST_GET_(integer, gint)
+TRACKER_CONFIGURATION_LIST_SET_(integer, gint)
+
+#undef TRACKER_CONFIGURATION_LIST_GET_
+#undef TRACKER_CONFIGURATION_LIST_SET_
+
+/* Implement string lists manually for strings are special you see */
+
+static GSList *
+tracker_configuration_get_string_list (const gchar * const key, GError ** error)
+{
+	gchar **data = NULL;
+	GSList *retval = NULL;
+
+	g_return_val_if_fail (key, NULL);
+
+	data = g_strsplit (key, "/", 3);
+
+	if (g_key_file_has_key (configuration, data[1], data[2], error)) {
+		gsize length = 0;
+		gchar **values = NULL;
+
+		values = g_key_file_get_string_list (configuration, data[1], data[2], &length, error);
+
+		if (values) {
+			gsize i = 0;
+
+			for (i = 0; i < length; i++) {
+				gchar *value = g_strdup (values[i]);
+				retval = g_slist_prepend (retval, value);
+			}
+
+			g_strfreev (values);
+		}
+	}
+
+	g_strfreev (data);
+	return g_slist_reverse (retval);
+}
+
+static void
+tracker_configuration_set_string_list (const gchar * const key, GSList * value)
+{
+	gchar **data = NULL;
+	gchar **list = NULL;
+	guint length = 0;
+
+	g_return_if_fail (key);
+	g_return_if_fail (value);
+
+	data = g_strsplit (key, "/", 3);
+	length = g_slist_length (value);
+	list = g_new0 (gchar *, length + 1);
+
+	guint i;
+	const GSList *tmp;
+	for (i = 0, tmp = value; tmp; tmp = tmp->next, i++) {
+		if (tmp->data) {
+			gchar *value = g_strdup (tmp->data);
+			list[i] = value;
+		}
+	}
+
+	g_key_file_set_string_list (configuration, data[1], data[2], (const gchar * const *)list, length);
+
+	g_strfreev (list);
+	g_strfreev (data);
+}
+
+GSList *
+tracker_configuration_get_list (const gchar * const key, GType g_type, GError ** error)
+{
+	switch (g_type) {
+		case G_TYPE_BOOLEAN:
+			return tracker_configuration_get_boolean_list (key, error);
+			break;
+		case G_TYPE_DOUBLE:
+			return tracker_configuration_get_double_list (key, error);
+			break;
+		case G_TYPE_INT:
+			return tracker_configuration_get_integer_list (key, error);
+			break;
+		case G_TYPE_STRING:
+			return tracker_configuration_get_string_list (key, error);
+			break;
+		default:
+			g_assert_not_reached ();
+	}
+}
+
+void
+tracker_configuration_set_list (const gchar * const key, GType g_type, GSList * value)
+{
+	switch (g_type) {
+		case G_TYPE_BOOLEAN:
+			return tracker_configuration_set_boolean_list (key, value);
+			break;
+		case G_TYPE_DOUBLE:
+			return tracker_configuration_set_double_list (key, value);
+			break;
+		case G_TYPE_INT:
+			return tracker_configuration_set_integer_list (key, value);
+			break;
+		case G_TYPE_STRING:
+			return tracker_configuration_set_string_list (key, value);
+			break;
+		default:
+			g_assert_not_reached ();
+	}
+}

Added: trunk/src/libtracker-common/tracker-configuration.h
==============================================================================
--- (empty file)
+++ trunk/src/libtracker-common/tracker-configuration.h	Tue Mar  4 03:21:03 2008
@@ -0,0 +1,78 @@
+/**
+ * Tracker - indexer and metadata database engine
+ * Copyright (c) 2007 Saleem Abdulrasool (compnerd compnerd org)
+ *
+ * This library 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 2 of the license, or (at your otpion) any later
+ * version.
+ *
+ * This library 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 library; if not, write to the Free Software Foundation, Inc., 51
+ * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ **/
+
+#ifndef __TRACKER_CONFIGURATION_H__
+#define __TRACKER_CONFIGURATION_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+typedef struct _LanguageMapEntry
+{
+	const gchar * const code;
+	const gchar * const language;
+} LanguageMapEntry;
+
+extern const LanguageMapEntry LanguageMap[];
+
+void
+tracker_configuration_load (void);
+
+void
+tracker_configuration_save (void);
+
+void
+tracker_configuration_free (void);
+
+gboolean
+tracker_configuration_get_boolean (const gchar * const key,
+				   GError ** error);
+
+void
+tracker_configuration_set_boolean (const gchar * const key,
+				   const gboolean value);
+
+gint
+tracker_configuration_get_integer (const gchar * const key,
+				   GError ** error);
+
+void
+tracker_configuration_set_integer (const gchar * const key,
+				   const gint value);
+
+gchar *
+tracker_configuration_get_string (const gchar * const key,
+				  GError ** error);
+
+void
+tracker_configuration_set_string (const gchar * const key,
+				  const gchar * const value);
+
+GSList *
+tracker_configuration_get_list (const gchar * const key, GType g_type,
+				GError ** error);
+
+void
+tracker_configuration_set_list (const gchar * const key, GType g_type,
+				GSList * value);
+
+G_END_DECLS
+
+#endif

Modified: trunk/src/tracker-preferences/Makefile.am
==============================================================================
--- trunk/src/tracker-preferences/Makefile.am	(original)
+++ trunk/src/tracker-preferences/Makefile.am	Tue Mar  4 03:21:03 2008
@@ -9,8 +9,7 @@
 
 pkgdata_DATA = tracker-preferences.glade
 
-noinst_HEADERS = tracker-configuration.h \
-		 tracker-preferences-dialogs.h \
+noinst_HEADERS = tracker-preferences-dialogs.h \
 		 tracker-preferences.h \
 		 tracker-preferences-utils.h \
 		 $(NULL)
@@ -25,8 +24,7 @@
 		-I$(top_srcdir)/src/libtracker \
 		$(NULL)
 
-tracker_preferences_SOURCES = tracker-configuration.c \
-			      tracker-preferences.c \
+tracker_preferences_SOURCES = tracker-preferences.c \
 			      tracker-preferences-dialogs.c \
 			      tracker-preferences-main.c \
 			      tracker-preferences-utils.c \
@@ -35,8 +33,9 @@
 tracker_preferences_LDADD = $(GLIB_LIBS) \
 			    $(GTK2_LIBS) \
 			    $(LIBGLADE_LIBS) \
-				$(DBUS_LIBS) \
-				$(top_builddir)/src/libtracker/libtrackerclient.la \
+			    $(DBUS_LIBS) \
+			    $(top_builddir)/src/libtracker-common/libtrackercommon.la \
+			    $(top_builddir)/src/libtracker/libtrackerclient.la \
 			    $(NULL)
 
 EXTRA_DIST = $(pkgdata_DATA)

Modified: trunk/src/tracker-preferences/tracker-preferences.c
==============================================================================
--- trunk/src/tracker-preferences/tracker-preferences.c	(original)
+++ trunk/src/tracker-preferences/tracker-preferences.c	Tue Mar  4 03:21:03 2008
@@ -26,18 +26,17 @@
 #include <glade/glade.h>
 #include <stdlib.h>
 
-#include "../trackerd/tracker-dbus.h"
 #include "../libtracker/tracker.h"
+#include "../trackerd/tracker-dbus.h"
+#include "../libtracker-common/tracker-configuration.h"
 
 #include "tracker-preferences.h"
 #include "tracker-preferences-dialogs.h"
-#include "tracker-configuration.h"
 
 #define TRACKER_PREFERENCES_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), TRACKER_TYPE_PREFERENCES, TrackerPreferencesPrivate))
 
 typedef struct _TrackerPreferencesPrivate {
 	GladeXML *gxml;
-	TrackerConfiguration *prefs;
 	DBusGConnection *connection;
 	DBusGProxy *dbus_proxy;
 	DBusGProxy *tracker_proxy;
@@ -102,7 +101,7 @@
 	TrackerPreferencesPrivate *priv =
 		TRACKER_PREFERENCES_GET_PRIVATE (self);
 
-	priv->prefs = tracker_configuration_new ();
+	tracker_configuration_load ();
 
 	GtkWidget *widget = NULL;
 
@@ -233,7 +232,6 @@
 	TrackerPreferencesPrivate *priv =
 		TRACKER_PREFERENCES_GET_PRIVATE (self);
 
-	g_object_unref (priv->prefs);
 	g_object_unref (priv->gxml);
 
 	G_OBJECT_CLASS (parent_class)->finalize (object);
@@ -251,7 +249,6 @@
 static void
 set_bool_option (TrackerPreferencesPrivate *priv, const char *name, gboolean value)
 {
-
 	dbus_g_proxy_begin_call (priv->tracker_proxy,
 				 "SetBoolOption",
 				 NULL,
@@ -260,14 +257,12 @@
 				 G_TYPE_STRING, name, 
 				 G_TYPE_BOOLEAN, value,
 				 G_TYPE_INVALID);
-
 }
 
 
 static void
 set_int_option (TrackerPreferencesPrivate *priv, const char *name, int value)
 {
-
 	dbus_g_proxy_begin_call (priv->tracker_proxy,
 				 "SetIntOption",
 				 NULL,
@@ -276,7 +271,6 @@
 				 G_TYPE_STRING, name, 
 				 G_TYPE_INT, value,
 				 G_TYPE_INVALID);
-
 }
 
 static void
@@ -285,57 +279,44 @@
 	TrackerPreferences *self = TRACKER_PREFERENCES (preferences);
 	TrackerPreferencesPrivate *priv =
 		TRACKER_PREFERENCES_GET_PRIVATE (self);
-	TrackerConfiguration *configuration =
-		TRACKER_CONFIGURATION (priv->prefs);
 
-	gboolean value = FALSE;
 	gint sleep = 45;
+	char *str_value = NULL;
+	gboolean value = FALSE;
 	GtkWidget *widget = NULL;
 
 	widget = glade_xml_get_widget (priv->gxml, "spnInitialSleep");
-	sleep = tracker_configuration_get_int (configuration,
-					       "/General/InitialSleep", NULL);
+	sleep = tracker_configuration_get_integer ("/General/InitialSleep", NULL);
 	gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), sleep);
 
 	widget = glade_xml_get_widget (priv->gxml, "chkEnableIndexing");
-	value = tracker_configuration_get_bool (configuration,
-						"/Indexing/EnableIndexing",
-						NULL);
+	value = tracker_configuration_get_boolean ("/Indexing/EnableIndexing", NULL);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), value);
 
 	widget = glade_xml_get_widget (priv->gxml, "chkEnableWatching");
-	value = tracker_configuration_get_bool (configuration,
-						"/Watches/EnableWatching",
-						NULL);
+	value = tracker_configuration_get_boolean ("/Watches/EnableWatching", NULL);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), value);
 
 	widget = glade_xml_get_widget (priv->gxml, "comLanguage");
-	char *str_value = tracker_configuration_get_string (configuration,
-							    "/Indexing/Language",
-							    NULL);
+	str_value = tracker_configuration_get_string ("/Indexing/Language", NULL);
 
-	gint i;
 	gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 2);
 
+	gint i;
 	for (i = 0; i < 12; i++) {
-		if (strcasecmp (tmap[i].lang, str_value) == 0) {
+		if (strcasecmp (LanguageMap[i].language, str_value) == 0) {
 			gtk_combo_box_set_active (GTK_COMBO_BOX (widget), i);
 			break;
 		}
 	}
 
 	widget = glade_xml_get_widget (priv->gxml, "chkDisableBatteryIndex");
-	value = tracker_configuration_get_bool (configuration,
-						"/Indexing/BatteryIndex",
-						NULL);
+	value = tracker_configuration_get_boolean ("/Indexing/BatteryIndex", NULL);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), !value);
 
 	widget = glade_xml_get_widget (priv->gxml, "chkDisableBatteryInitialIndex");
-	value = tracker_configuration_get_bool (configuration,
-						"/Indexing/BatteryIndexInitial",
-						NULL);
+	value = tracker_configuration_get_boolean ("/Indexing/BatteryIndexInitial", NULL);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), !value);
-
 }
 
 static void
@@ -344,45 +325,34 @@
 	TrackerPreferences *self = TRACKER_PREFERENCES (preferences);
 	TrackerPreferencesPrivate *priv =
 		TRACKER_PREFERENCES_GET_PRIVATE (self);
-	TrackerConfiguration *configuration =
-		TRACKER_CONFIGURATION (priv->prefs);
 
 	GtkWidget *widget = NULL;
 	gint value = 0;
 	gboolean bvalue = FALSE;
 
 	widget = glade_xml_get_widget (priv->gxml, "scaThrottle");
-	value = tracker_configuration_get_int (configuration,
-					       "/Indexing/Throttle", NULL);
+	value = tracker_configuration_get_integer("/Indexing/Throttle", NULL);
 	gtk_range_set_value (GTK_RANGE (widget), value);
 
 	widget = glade_xml_get_widget (priv->gxml, "optReducedMemory");
-	bvalue = tracker_configuration_get_bool (configuration,
-						 "/General/LowMemoryMode",
-						 NULL);
+	bvalue = tracker_configuration_get_boolean ("/General/LowMemoryMode", NULL);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), bvalue);
 
 	widget = glade_xml_get_widget (priv->gxml, "optNormal");
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), !bvalue);
 
 	widget = glade_xml_get_widget (priv->gxml, "chkFastMerges");
-	bvalue = tracker_configuration_get_bool (configuration,
-						 "/Indexing/FastMerges",
-						 NULL);
+	bvalue = tracker_configuration_get_boolean ("/Indexing/FastMerges", NULL);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), bvalue);
 
 	widget = glade_xml_get_widget (priv->gxml, "spnMaxText");
-	value = tracker_configuration_get_int (configuration,
-					       "/Performance/MaxTextToIndex",
-					       NULL);
+	value = tracker_configuration_get_integer ("/Performance/MaxTextToIndex", NULL);
 
 	value = value / 1024;
 	gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), value);
 
 	widget = glade_xml_get_widget (priv->gxml, "spnMaxWords");
-	value = tracker_configuration_get_int (configuration,
-					       "/Performance/MaxWordsToIndex",
-					       NULL);
+	value = tracker_configuration_get_integer ("/Performance/MaxWordsToIndex", NULL);
 
 	gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), value);
 
@@ -394,56 +364,41 @@
 	TrackerPreferences *self = TRACKER_PREFERENCES (preferences);
 	TrackerPreferencesPrivate *priv =
 		TRACKER_PREFERENCES_GET_PRIVATE (self);
-	TrackerConfiguration *configuration =
-		TRACKER_CONFIGURATION (priv->prefs);
 
-	GSList *list = NULL;
+	GSList *list = NULL, *entry = NULL;
 	gboolean value = FALSE;
 	GtkWidget *widget = NULL;
 
 	widget = glade_xml_get_widget (priv->gxml, "chkIndexContents");
-	value = tracker_configuration_get_bool (configuration,
-						"/Indexing/EnableFileContentIndexing",
-						NULL);
+	value = tracker_configuration_get_boolean ("/Indexing/EnableFileContentIndexing",
+						   NULL);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), value);
 
 	widget = glade_xml_get_widget (priv->gxml, "chkGenerateThumbs");
-	value = tracker_configuration_get_bool (configuration,
-						"/Indexing/EnableThumbnails",
-						NULL);
+	value = tracker_configuration_get_boolean ("/Indexing/EnableThumbnails", NULL);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), value);
 
 	widget = glade_xml_get_widget (priv->gxml, "chkSkipMountPoints");
-	value = tracker_configuration_get_bool (configuration,
-						"/Indexing/SkipMountPoints",
-						NULL);
+	value = tracker_configuration_get_boolean ("/Indexing/SkipMountPoints", NULL);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), !value);
 
 	widget = glade_xml_get_widget (priv->gxml,
 				       "lstAdditionalPathIndexes");
 	gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (widget), FALSE);
-	list = tracker_configuration_get_list (configuration,
-					       "/Watches/WatchDirectoryRoots",
+	list = tracker_configuration_get_list ("/Watches/WatchDirectoryRoots",
 					       G_TYPE_STRING, NULL);
 
-	GSList *entry =
-		g_slist_find_custom (list, g_get_home_dir (), _strcmp);
-
 	widget = glade_xml_get_widget (priv->gxml, "chkIndexHomeDirectory");
+	entry = g_slist_find_custom (list, g_get_home_dir (), _strcmp);
 
 	if (entry) {
 		list = g_slist_delete_link (list, entry);
-
-
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget),
-					      TRUE);
+		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
 	} else {
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget),
-					      FALSE);
+		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);
 	}
 
-	widget = glade_xml_get_widget (priv->gxml,
-				       "lstAdditionalPathIndexes");
+	widget = glade_xml_get_widget (priv->gxml, "lstAdditionalPathIndexes");
 
 	initialize_listview (widget);
 	populate_list (widget, list);
@@ -451,8 +406,7 @@
 
 	widget = glade_xml_get_widget (priv->gxml, "lstCrawledPaths");
 	gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (widget), FALSE);
-	list = tracker_configuration_get_list (configuration,
-					       "/Watches/CrawlDirectory",
+	list = tracker_configuration_get_list ("/Watches/CrawlDirectory",
 					       G_TYPE_STRING, NULL);
 
 	initialize_listview (widget);
@@ -466,8 +420,6 @@
 	TrackerPreferences *self = TRACKER_PREFERENCES (preferences);
 	TrackerPreferencesPrivate *priv =
 		TRACKER_PREFERENCES_GET_PRIVATE (self);
-	TrackerConfiguration *configuration =
-		TRACKER_CONFIGURATION (priv->prefs);
 
 	GSList *list = NULL;
 	GtkWidget *widget = NULL;
@@ -475,8 +427,7 @@
 	/* Ignore Paths */
 	widget = glade_xml_get_widget (priv->gxml, "lstIgnorePaths");
 	gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (widget), FALSE);
-	list = tracker_configuration_get_list (configuration,
-					       "/Watches/NoWatchDirectory",
+	list = tracker_configuration_get_list ("/Watches/NoWatchDirectory",
 					       G_TYPE_STRING, NULL);
 
 	initialize_listview (widget);
@@ -487,8 +438,7 @@
 	/* Ignore File Patterns */
 	widget = glade_xml_get_widget (priv->gxml, "lstIgnoreFilePatterns");
 	gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (widget), FALSE);
-	list = tracker_configuration_get_list (configuration,
-					       "/Indexing/NoIndexFileTypes",
+	list = tracker_configuration_get_list ("/Indexing/NoIndexFileTypes",
 					       G_TYPE_STRING, NULL);
 
 	initialize_listview (widget);
@@ -503,27 +453,21 @@
 	TrackerPreferences *self = TRACKER_PREFERENCES (preferences);
 	TrackerPreferencesPrivate *priv =
 		TRACKER_PREFERENCES_GET_PRIVATE (self);
-	TrackerConfiguration *configuration =
-		TRACKER_CONFIGURATION (priv->prefs);
 
 	GtkWidget *widget = NULL;
-	gboolean value;
+	gboolean value = FALSE;
 
 	widget = glade_xml_get_widget (priv->gxml,
 				       "chkEnableEvolutionIndexing");
-	value = tracker_configuration_get_bool (configuration,
-						"/Emails/IndexEvolutionEmails",
-						NULL);
+	value = tracker_configuration_get_boolean ("/Emails/IndexEvolutionEmails",
+						   NULL);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), value);
 
 	widget = glade_xml_get_widget (priv->gxml,
 				       "chkEnableThunderbirdIndexing");
-	value = tracker_configuration_get_bool (configuration,
-						"/Emails/IndexThunderbirdEmails",
-						NULL);
+	value = tracker_configuration_get_boolean ("/Emails/IndexThunderbirdEmails",
+						   NULL);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), value);
-
-
 }
 
 static void
@@ -542,12 +486,11 @@
 		    const gchar *prev_owner, const gchar *new_owner,
 		    gpointer data)
 {
-
 	if (!g_str_equal (name, TRACKER_SERVICE))
 		return;
 
-        if (!first_time)
-                return;
+	if (!first_time)
+		return;
 
 	if (g_str_equal (new_owner, "")) {
 		/* tracker has exited */
@@ -555,7 +498,9 @@
 
 		if (!g_spawn_command_line_async (command, NULL))
 			g_warning ("Unable to execute command: %s", command);
-                first_time = FALSE;
+
+		first_time = FALSE;
+
 		if (flag_quit)
 			gtk_main_quit ();
 	}
@@ -617,7 +562,6 @@
 	} else if (flag_quit) {
 		gtk_main_quit ();
 	}
-	
 }
 
 static void
@@ -626,8 +570,6 @@
 	TrackerPreferences *self = TRACKER_PREFERENCES (data);
 	TrackerPreferencesPrivate *priv =
 		TRACKER_PREFERENCES_GET_PRIVATE (self);
-	TrackerConfiguration *configuration =
-		TRACKER_CONFIGURATION (priv->prefs);
 
 	GSList *list = NULL;
 	GSList *list_old = NULL;
@@ -635,123 +577,108 @@
 	gboolean bvalue, bvalue_old;
 	char *str_value;
 
-
 	/* save general settings */
 	widget = glade_xml_get_widget (priv->gxml, "spnInitialSleep");
 	ivalue = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget));
-	tracker_configuration_set_int (configuration, "/General/InitialSleep",
-				       ivalue);
+	tracker_configuration_set_integer ("/General/InitialSleep", ivalue);
 
 	widget = glade_xml_get_widget (priv->gxml, "chkEnableIndexing");
 	bvalue = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	bvalue_old = tracker_configuration_get_bool (configuration,
-					"/Indexing/EnableIndexing", NULL);
+	bvalue_old = tracker_configuration_get_boolean ("/Indexing/EnableIndexing",
+							NULL);
 	if (bvalue != bvalue_old) {
 		flag_restart = TRUE;
 		set_bool_option (priv, "EnableIndexing", bvalue);
-		tracker_configuration_set_bool (configuration,
-					"/Indexing/EnableIndexing", bvalue);
+		tracker_configuration_set_boolean ("/Indexing/EnableIndexing", bvalue);
 	}
 
 	widget = glade_xml_get_widget (priv->gxml, "chkEnableWatching");
 	bvalue = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	bvalue_old = tracker_configuration_get_bool (configuration,
-					"/Watches/EnableWatching", NULL);
+	bvalue_old = tracker_configuration_get_boolean ("/Watches/EnableWatching",
+							NULL);
 	if (bvalue != bvalue_old) {
 		flag_restart = TRUE;
 		set_bool_option (priv, "EnableIndexing", bvalue);
-		tracker_configuration_set_bool (configuration,
-					"/Watches/EnableWatching", bvalue);
+		tracker_configuration_set_boolean ("/Watches/EnableWatching", bvalue);
 	}
 
 	widget = glade_xml_get_widget (priv->gxml, "comLanguage");
 	gint i = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
-	str_value = tracker_configuration_get_string (configuration,
-						      "/Indexing/Language",
-						      NULL);
+	str_value = tracker_configuration_get_string ("/Indexing/Language", NULL);
 	if (i != -1) {
-		if (strcmp (str_value, tmap[i].lang) != 0) {
+		if (strcmp (str_value, LanguageMap[i].language) != 0) {
 			flag_restart = TRUE;
 			flag_reindex = TRUE;
 		}
-		tracker_configuration_set_string (configuration,
-						  "/Indexing/Language",
-						  tmap[i].lang);
+		tracker_configuration_set_string ("/Indexing/Language",
+						  LanguageMap[i].language);
 	}
 
 	widget = glade_xml_get_widget (priv->gxml, "chkDisableBatteryIndex");
 	bvalue = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	bvalue_old = tracker_configuration_get_bool (configuration,
-					"/Indexing/BatteryIndex", NULL);
+	bvalue_old = tracker_configuration_get_boolean ("/Indexing/BatteryIndex",
+							NULL);
 	if (bvalue != bvalue_old) {
 		set_bool_option (priv, "BatteryIndex", bvalue);
-		tracker_configuration_set_bool (configuration,
-					"/Indexing/BatteryIndex", bvalue);
+		tracker_configuration_set_boolean ("/Indexing/BatteryIndex", bvalue);
 	}
 
 	widget = glade_xml_get_widget (priv->gxml, "chkDisableBatteryInitialIndex");
 	bvalue = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	bvalue_old = tracker_configuration_get_bool (configuration,
-					"/Indexing/BatteryIndexInitial", NULL);
+	bvalue_old = tracker_configuration_get_boolean ("/Indexing/BatteryIndexInitial",
+							NULL);
 	if (bvalue != bvalue_old) {
 		set_bool_option (priv, "BatteryIndexInitial", bvalue);
-		tracker_configuration_set_bool (configuration,
-					"/Indexing/BatteryIndexInitial", bvalue);
+		tracker_configuration_set_boolean ("/Indexing/BatteryIndexInitial", bvalue);
 	}
 
 	/* files settings */
-
 	widget = glade_xml_get_widget (priv->gxml, "chkIndexContents");
 	bvalue = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	bvalue_old = tracker_configuration_get_bool (configuration,
-					"/Indexing/EnableFileContentIndexing", NULL);
+	bvalue_old = tracker_configuration_get_boolean ("/Indexing/EnableFileContentIndexing",
+							NULL);
 	if (bvalue != bvalue_old) {
 		flag_restart = TRUE;
 		flag_reindex = TRUE;
 		set_bool_option (priv, "IndexFileContents", bvalue);
-		tracker_configuration_set_bool (configuration,
-					"/Indexing/EnableFileContentIndexing", bvalue);
+		tracker_configuration_set_boolean ("/Indexing/EnableFileContentIndexing",
+						   bvalue);
 	}
 
 	widget = glade_xml_get_widget (priv->gxml, "chkGenerateThumbs");
 	bvalue = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	bvalue_old = tracker_configuration_get_bool (configuration,
-					"/Indexing/EnableThumbnails", NULL);
+	bvalue_old = tracker_configuration_get_boolean ("/Indexing/EnableThumbnails",
+							NULL);
 	if (bvalue != bvalue_old) {
 		flag_restart = TRUE;
 		flag_reindex = TRUE;
 		set_bool_option (priv, "GenerateThumbs", bvalue);
-		tracker_configuration_set_bool (configuration,
-					"/Indexing/EnableThumbnails", bvalue);
+		tracker_configuration_set_boolean ("/Indexing/EnableThumbnails", bvalue);
 	}
 
 	widget = glade_xml_get_widget (priv->gxml, "chkSkipMountPoints");
 	bvalue = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	bvalue_old = tracker_configuration_get_bool (configuration,
-					"/Indexing/SkipMountPoints", NULL);
+	bvalue_old = tracker_configuration_get_boolean ("/Indexing/SkipMountPoints",
+							NULL);
 	if (bvalue != bvalue_old) {
 		flag_restart = TRUE;
 		set_bool_option (priv, "SkipMountPoints", bvalue);
-		tracker_configuration_set_bool (configuration,
-					"/Indexing/SkipMountPoints", bvalue);
+		tracker_configuration_set_boolean ("/Indexing/SkipMountPoints", bvalue);
 	}
 
-	widget = glade_xml_get_widget (priv->gxml,
-				       "lstAdditionalPathIndexes");
+	widget = glade_xml_get_widget (priv->gxml, "lstAdditionalPathIndexes");
 	list = treeview_get_values (GTK_TREE_VIEW (widget));
 
 	widget = glade_xml_get_widget (priv->gxml, "chkIndexHomeDirectory");
 	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) {
 		list = g_slist_prepend (list, g_strdup (g_get_home_dir ()));
 	}
-	list_old = tracker_configuration_get_list (configuration,
-					       "/Watches/WatchDirectoryRoots",
-					       G_TYPE_STRING, NULL);
+	list_old = tracker_configuration_get_list ("/Watches/WatchDirectoryRoots",
+						   G_TYPE_STRING, NULL);
 	if (!str_slist_equal (list, list_old)) {
 		flag_restart = TRUE;
-		tracker_configuration_set_list (configuration,
-					"/Watches/WatchDirectoryRoots", list,
-					G_TYPE_STRING);
+		tracker_configuration_set_list ("/Watches/WatchDirectoryRoots", G_TYPE_STRING,
+						list);
 	}
 
 	g_slist_free (list);
@@ -761,14 +688,12 @@
 
 	widget = glade_xml_get_widget (priv->gxml, "lstCrawledPaths");
 	list = treeview_get_values (GTK_TREE_VIEW (widget));
-	list_old = tracker_configuration_get_list (configuration,
-					       "/Watches/CrawlDirectory",
-					       G_TYPE_STRING, NULL);
+	list_old = tracker_configuration_get_list ("/Watches/CrawlDirectory",
+						   G_TYPE_STRING, NULL);
 	if (!str_slist_equal (list, list_old)) {
 		flag_restart = TRUE;
-		tracker_configuration_set_list (configuration,
-					"/Watches/CrawlDirectory", list,
-					G_TYPE_STRING);
+		tracker_configuration_set_list ("/Watches/CrawlDirectory", G_TYPE_STRING,
+						list);
 	}
 
 	g_slist_free (list);
@@ -779,14 +704,12 @@
 	/* ignored files settings */
 	widget = glade_xml_get_widget (priv->gxml, "lstIgnorePaths");
 	list = treeview_get_values (GTK_TREE_VIEW (widget));
-	list_old = tracker_configuration_get_list (configuration,
-					       "/Watches/NoWatchDirectory",
-					       G_TYPE_STRING, NULL);
+	list_old = tracker_configuration_get_list ("/Watches/NoWatchDirectory",
+						   G_TYPE_STRING, NULL);
 	if (!str_slist_equal (list, list_old)) {
 		flag_restart = TRUE;
-		tracker_configuration_set_list (configuration,
-					"/Watches/NoWatchDirectory", list,
-					G_TYPE_STRING);
+		tracker_configuration_set_list ("/Watches/NoWatchDirectory", G_TYPE_STRING,
+						list);
 	}
 
 	g_slist_free (list);
@@ -796,14 +719,12 @@
 
 	widget = glade_xml_get_widget (priv->gxml, "lstIgnoreFilePatterns");
 	list = treeview_get_values (GTK_TREE_VIEW (widget));
-	list_old = tracker_configuration_get_list (configuration,
-					       "/Indexing/NoIndexFileTypes",
-					       G_TYPE_STRING, NULL);
+	list_old = tracker_configuration_get_list ("/Indexing/NoIndexFileTypes",
+						   G_TYPE_STRING, NULL);
 	if (!str_slist_equal (list, list_old)) {
 		flag_restart = TRUE;
-		tracker_configuration_set_list (configuration,
-					"/Indexing/NoIndexFileTypes", list,
-					G_TYPE_STRING);
+		tracker_configuration_set_list ("/Indexing/NoIndexFileTypes", G_TYPE_STRING,
+						list);
 	}
 
 	g_slist_free (list);
@@ -812,84 +733,72 @@
 	list_old = NULL;
 
 	/* Email settings */
-
 	widget = glade_xml_get_widget (priv->gxml, "chkEnableEvolutionIndexing");
 	bvalue = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	bvalue_old = tracker_configuration_get_bool (configuration,
-					"/Emails/IndexEvolutionEmails", NULL);
+	bvalue_old = tracker_configuration_get_boolean ("/Emails/IndexEvolutionEmails",
+							NULL);
 	if (bvalue != bvalue_old) {
 		set_bool_option (priv, "EnableEvolution", bvalue);
-		tracker_configuration_set_bool (configuration,
-					"/Emails/IndexEvolutionEmails", bvalue);
+		tracker_configuration_set_boolean ("/Emails/IndexEvolutionEmails", bvalue);
 	}
 
 	widget = glade_xml_get_widget (priv->gxml, "chkEnableThunderbirdIndexing");
 	bvalue = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	bvalue_old = tracker_configuration_get_bool (configuration,
-					"/Emails/IndexThunderbirdEmails", NULL);
+	bvalue_old = tracker_configuration_get_boolean ("/Emails/IndexThunderbirdEmails",
+							NULL);
 	if (bvalue != bvalue_old) {
 		set_bool_option (priv, "EnableThunderbird", bvalue);
-		tracker_configuration_set_bool (configuration,
-					"/Emails/IndexThunderbirdEmails", bvalue);
+		tracker_configuration_set_boolean ("/Emails/IndexThunderbirdEmails", bvalue);
 	}
 
 	/* Performance settings */
-
 	widget = glade_xml_get_widget (priv->gxml, "scaThrottle");
 	ivalue = gtk_range_get_value (GTK_RANGE (widget));
-	ivalue_old = tracker_configuration_get_int (configuration,
-					"/Indexing/Throttle", NULL);
+	ivalue_old = tracker_configuration_get_integer ("/Indexing/Throttle", NULL);
 	if (ivalue != ivalue_old) {
 		set_int_option (priv, "Throttle", ivalue);
-		tracker_configuration_set_int (configuration,
-					"/Indexing/Throttle", ivalue);
+		tracker_configuration_set_integer ("/Indexing/Throttle", ivalue);
 	}
 
 	widget = glade_xml_get_widget (priv->gxml, "optReducedMemory");
 	bvalue = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	bvalue_old = tracker_configuration_get_bool (configuration,
-					"/General/LowMemoryMode", NULL);
+	bvalue_old = tracker_configuration_get_boolean ("/General/LowMemoryMode",
+							NULL);
 	if (bvalue != bvalue_old) {
 		set_bool_option (priv, "LowMemoryMode", bvalue);
-		tracker_configuration_set_bool (configuration,
-					"/General/LowMemoryMode", bvalue);
+		tracker_configuration_set_boolean ("/General/LowMemoryMode", bvalue);
 	}
 
 	widget = glade_xml_get_widget (priv->gxml, "chkFastMerges");
 	bvalue = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-	bvalue_old = tracker_configuration_get_bool (configuration,
-					"/Indexing/FastMerges", NULL);
+	bvalue_old = tracker_configuration_get_boolean ("/Indexing/FastMerges", NULL);
 	if (bvalue != bvalue_old) {
 		set_bool_option (priv, "FastMerges", bvalue);
-		tracker_configuration_set_bool (configuration,
-					"/Indexing/FastMerges", bvalue);
+		tracker_configuration_set_boolean ("/Indexing/FastMerges", bvalue);
 	}
 
 	widget = glade_xml_get_widget (priv->gxml, "spnMaxText");
 	ivalue = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget))*1024;
-	ivalue_old = tracker_configuration_get_int (configuration,
-					"/Performance/MaxTextToIndex", NULL);
+	ivalue_old = tracker_configuration_get_integer ("/Performance/MaxTextToIndex",
+							NULL);
 	if (ivalue != ivalue_old) {
 		set_int_option (priv, "MaxText", ivalue);
-		tracker_configuration_set_int (configuration,
-					"/Performance/MaxTextToIndex", ivalue);
+		tracker_configuration_set_integer ("/Performance/MaxTextToIndex", ivalue);
 	}
 
 	widget = glade_xml_get_widget (priv->gxml, "spnMaxWords");
 	ivalue = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget));
-	ivalue_old = tracker_configuration_get_int (configuration,
-					"/Performance/MaxWordsToIndex", NULL);
+	ivalue_old = tracker_configuration_get_integer ("/Performance/MaxWordsToIndex",
+							NULL);
 	if (ivalue != ivalue_old) {
 		set_int_option (priv, "MaxWords", ivalue);
-		tracker_configuration_set_int (configuration,
-					"/Performance/MaxWordsToIndex", ivalue);
+		tracker_configuration_set_integer ("/Performance/MaxWordsToIndex", ivalue);
 	}
 
 	/* save config to distk */
-	tracker_configuration_write (configuration);
+	tracker_configuration_save ();
 
 	if (flag_restart && if_trackerd_start (priv)) {
-
 		GtkWidget *dialog;
 		gchar *primary;
 		gchar *secondary;
@@ -918,10 +827,10 @@
 		}
 		
 		dialog = gtk_message_dialog_new (GTK_WINDOW (main_window),
- 	                                 	GTK_DIALOG_MODAL,
-	                                 	GTK_MESSAGE_WARNING,
-	                                 	GTK_BUTTONS_NONE,
-	                                 	primary);
+						 GTK_DIALOG_MODAL,
+						 GTK_MESSAGE_WARNING,
+						 GTK_BUTTONS_NONE,
+						 primary);
 
 		gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
 							  secondary);
@@ -932,8 +841,8 @@
 
 		g_free (primary);
 		g_free (secondary);
-		g_free (button);	
-		
+		g_free (button);
+
 		gtk_window_set_title (GTK_WINDOW (dialog), "");
 		gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
 		gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 14);
@@ -941,16 +850,16 @@
 		g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK (restart_tracker), self);
 
 		gtk_widget_show (dialog);
-
 	} else if (flag_quit) {
+		tracker_configuration_free ();
 		gtk_main_quit ();
 	}
-
 }
 
 static void
 tracker_preferences_cmd_cancel (GtkWidget *widget, gpointer data)
 {
+	tracker_configuration_free ();
 	gtk_main_quit ();
 }
 



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