[tracker/tracker-0.16] libtracker-common, tracker-miner-fs: Fixed config file and settings overwriting
- From: Martyn James Russell <mr src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/tracker-0.16] libtracker-common, tracker-miner-fs: Fixed config file and settings overwriting
- Date: Wed, 31 Jul 2013 22:31:39 +0000 (UTC)
commit 41d835f125ead6b5700a12e4c49604f2c77b8146
Author: Martyn Russell <martyn lanedo com>
Date: Thu Jul 25 13:25:55 2013 +0100
libtracker-common, tracker-miner-fs: Fixed config file and settings overwriting
libtracker-common: Added config tracing to avoid spaming logs most of the
time, but kept for cases where we need to see what we're doing with configs.
libtracker-common: Added +tracker_config_file_import_to_settings() We call
this now from tracker-config.c in miner-fs when using config files to update
our local GSettings. No overwriting stored GSettings happens.
tracker-miner-fs: Removed all unused _set() functions in tracker-config.[ch].
tracker-miner-fs: Only allow *local* GSettings override of verbosity and
initial-sleep from the command line.
tracker-miner-fs: Don't re-write the default config in some cases.
tracker-miner-fs: For config, don't bind DEFAULT, but only GET for most
properties, we don't want to save back what we change locally, that's what
tracker-preferences does.
https://bugzilla.gnome.org/show_bug.cgi?id=703759
src/libtracker-common/tracker-config-file.c | 59 +++-
src/libtracker-common/tracker-config-file.h | 17 +-
src/miners/fs/tracker-config.c | 440 ++++++++-------------------
src/miners/fs/tracker-config.h | 35 ---
4 files changed, 177 insertions(+), 374 deletions(-)
---
diff --git a/src/libtracker-common/tracker-config-file.c b/src/libtracker-common/tracker-config-file.c
index b1135ab..6ad9898 100644
--- a/src/libtracker-common/tracker-config-file.c
+++ b/src/libtracker-common/tracker-config-file.c
@@ -24,6 +24,10 @@
#include "tracker-config-file.h"
+#ifdef CONFIG_ENABLE_TRACE
+#warning Config debugging traces enabled
+#endif /* CONFIG_ENABLE_TRACE */
+
/**
* SECTION:tracker-config-file
* @short_description: Abstract base class for configuration files
@@ -253,8 +257,10 @@ config_changed_cb (GFileMonitor *monitor,
file->file_exists = TRUE;
filename = g_file_get_path (this_file);
+#ifdef CONFIG_ENABLE_TRACE
g_message ("Config file changed:'%s', reloading settings..., event:%d",
filename, event_type);
+#endif /* CONFIG_ENABLE_TRACE */
g_free (filename);
config_load (file);
@@ -346,11 +352,15 @@ config_save (TrackerConfigFile *file)
return FALSE;
}
+#ifdef CONFIG_ENABLE_TRACE
g_message ("Setting details to GKeyFile object...");
+#endif /* CONFIG_ENABLE_TRACE */
/* FIXME: Get to GKeyFile from object properties */
+#ifdef CONFIG_ENABLE_TRACE
g_message ("Saving config to disk...");
+#endif /* CONFIG_ENABLE_TRACE */
/* Do the actual saving to disk now */
data = g_key_file_to_data (file->key_file, &size, &error);
@@ -378,9 +388,11 @@ config_save (TrackerConfigFile *file)
return FALSE;
}
+#ifdef CONFIG_ENABLE_TRACE
g_message ("Wrote config to '%s' (%" G_GSIZE_FORMAT " bytes)",
filename,
size);
+#endif /* CONFIG_ENABLE_TRACE */
g_free (filename);
@@ -396,11 +408,11 @@ config_save (TrackerConfigFile *file)
* Return value: %TRUE on success, %FALSE otherwise.
*/
gboolean
-tracker_config_file_save (TrackerConfigFile *config)
+tracker_config_file_save (TrackerConfigFile *file)
{
- g_return_val_if_fail (TRACKER_IS_CONFIG_FILE (config), FALSE);
+ g_return_val_if_fail (TRACKER_IS_CONFIG_FILE (file), FALSE);
- return config_save (config);
+ return config_save (file);
}
TrackerConfigFile *
@@ -487,7 +499,9 @@ migrate_settings_to_keyfile (TrackerConfigMigrationEntry *entries,
{
gint i;
+#ifdef CONFIG_ENABLE_TRACE
g_message ("Storing configuration to Keyfile...");
+#endif /* CONFIG_ENABLE_TRACE */
for (i = 0; entries[i].type != G_TYPE_INVALID; i++) {
switch (entries[i].type) {
@@ -571,7 +585,9 @@ tracker_config_file_migrate (TrackerConfigFile *file,
if (G_UNLIKELY (g_getenv ("TRACKER_USE_CONFIG_FILES"))) {
UnappliedNotifyData *data;
+#ifdef CONFIG_ENABLE_TRACE
g_message ("Using config file, not GSettings");
+#endif /* CONFIG_ENABLE_TRACE */
/* Ensure we have the config file in place */
if (!file->file_exists) {
@@ -592,18 +608,37 @@ tracker_config_file_migrate (TrackerConfigFile *file,
G_CALLBACK (settings_has_unapplied_notify),
data);
} else {
+ /* 1. Migrate config to GSettings */
+#ifdef CONFIG_ENABLE_TRACE
g_message ("Using GSettings, not config file");
+#endif /* CONFIG_ENABLE_TRACE */
+ tracker_config_file_import_to_settings (file, settings, entries);
+
+ /* 2. Delete the old config file now it's migrated */
+#ifdef CONFIG_ENABLE_TRACE
+ g_message (" Removing old config file");
+#endif /* CONFIG_ENABLE_TRACE */
+ g_file_delete (file->file, NULL, NULL);
+ }
- /* 1. Check if we have a config file */
- if (file->key_file && file->file_exists) {
- /* 2. If so migrate to GSettings */
- g_message (" Migrating settings from config file to GSettings");
- migrate_keyfile_to_settings (entries, file, settings);
+ return TRUE;
+}
- /* 3. Delete the old config file now it's migrated */
- g_message (" Removing old config file");
- g_file_delete (file->file, NULL, NULL);
- }
+gboolean
+tracker_config_file_import_to_settings (TrackerConfigFile *file,
+ GSettings *settings,
+ TrackerConfigMigrationEntry *entries)
+{
+ g_return_val_if_fail (TRACKER_IS_CONFIG_FILE (file), FALSE);
+
+ g_message ("Importing config file to GSettings");
+
+ if (file->key_file && file->file_exists) {
+#ifdef CONFIG_ENABLE_TRACE
+ g_message (" Migrating settings from config file to GSettings");
+#endif /* CONFIG_ENABLE_TRACE */
+
+ migrate_keyfile_to_settings (entries, file, settings);
}
return TRUE;
diff --git a/src/libtracker-common/tracker-config-file.h b/src/libtracker-common/tracker-config-file.h
index 1737b8b..9cc89df 100644
--- a/src/libtracker-common/tracker-config-file.h
+++ b/src/libtracker-common/tracker-config-file.h
@@ -64,14 +64,15 @@ struct _TrackerConfigMigrationEntry {
const gchar *settings_key;
};
-GType tracker_config_file_get_type (void) G_GNUC_CONST;
-
-TrackerConfigFile* tracker_config_file_new (void);
-gboolean tracker_config_file_migrate (TrackerConfigFile *config,
- GSettings *settings,
- TrackerConfigMigrationEntry *entries);
-
-gboolean tracker_config_file_save (TrackerConfigFile *config);
+GType tracker_config_file_get_type (void) G_GNUC_CONST;
+TrackerConfigFile* tracker_config_file_new (void);
+gboolean tracker_config_file_migrate (TrackerConfigFile *file,
+ GSettings *settings,
+ TrackerConfigMigrationEntry *entries);
+gboolean tracker_config_file_import_to_settings (TrackerConfigFile *file,
+ GSettings *settings,
+ TrackerConfigMigrationEntry *entries);
+gboolean tracker_config_file_save (TrackerConfigFile *file);
G_END_DECLS
diff --git a/src/miners/fs/tracker-config.c b/src/miners/fs/tracker-config.c
index 1080a8c..f288522 100644
--- a/src/miners/fs/tracker-config.c
+++ b/src/miners/fs/tracker-config.c
@@ -29,6 +29,7 @@
#include <libtracker-common/tracker-file-utils.h>
#include <libtracker-common/tracker-type-utils.h>
#include <libtracker-common/tracker-enum-types.h>
+#include <libtracker-common/tracker-log.h>
#include "tracker-config.h"
@@ -48,6 +49,9 @@
#define DEFAULT_ENABLE_WRITEBACK FALSE
typedef struct {
+ /* NOTE: Only used with TRACKER_USE_CONFIG_FILES env var. */
+ gpointer config_file;
+
/* IMPORTANT: There are 3 versions of the directories:
* 1. a GStrv stored in GSettings
* 2. a GSList stored here which is the GStrv without any
@@ -70,16 +74,28 @@ typedef struct {
GSList *ignored_file_paths;
} TrackerConfigPrivate;
-static void config_set_property (GObject *object,
- guint param_id,
- const GValue *value,
- GParamSpec *pspec);
-static void config_get_property (GObject *object,
- guint param_id,
- GValue *value,
- GParamSpec *pspec);
-static void config_finalize (GObject *object);
-static void config_constructed (GObject *object);
+static void config_set_property (GObject *object,
+ guint param_id,
+ const GValue *value,
+ GParamSpec *pspec);
+static void config_get_property (GObject *object,
+ guint param_id,
+ GValue *value,
+ GParamSpec *pspec);
+static void config_finalize (GObject *object);
+static void config_constructed (GObject *object);
+static void config_file_changed_cb (TrackerConfigFile *config,
+ gpointer user_data);
+static void config_set_index_recursive_directories (TrackerConfig *config,
+ GSList *roots);
+static void config_set_index_single_directories (TrackerConfig *config,
+ GSList *roots);
+static void config_set_ignored_directories (TrackerConfig *config,
+ GSList *roots);
+static void config_set_ignored_directories_with_content (TrackerConfig *config,
+ GSList *roots);
+static void config_set_ignored_files (TrackerConfig *config,
+ GSList *files);
enum {
PROP_0,
@@ -329,55 +345,27 @@ config_set_property (GObject *object,
{
switch (param_id) {
/* General */
+ /* NOTE: We handle these because we have to be able
+ * to save these based on command line overrides.
+ */
case PROP_VERBOSITY:
tracker_config_set_verbosity (TRACKER_CONFIG (object),
g_value_get_enum (value));
break;
- case PROP_SCHED_IDLE:
- tracker_config_set_sched_idle (TRACKER_CONFIG (object),
- g_value_get_enum (value));
- break;
case PROP_INITIAL_SLEEP:
tracker_config_set_initial_sleep (TRACKER_CONFIG (object),
g_value_get_int (value));
break;
- /* Monitors */
- case PROP_ENABLE_MONITORS:
- tracker_config_set_enable_monitors (TRACKER_CONFIG (object),
- g_value_get_boolean (value));
- break;
-
/* Indexing */
- case PROP_THROTTLE:
- tracker_config_set_throttle (TRACKER_CONFIG (object),
- g_value_get_int (value));
- break;
- case PROP_INDEX_ON_BATTERY:
- tracker_config_set_index_on_battery (TRACKER_CONFIG (object),
- g_value_get_boolean (value));
- break;
- case PROP_INDEX_ON_BATTERY_FIRST_TIME:
- tracker_config_set_index_on_battery_first_time (TRACKER_CONFIG (object),
- g_value_get_boolean (value));
- break;
- case PROP_INDEX_REMOVABLE_DEVICES:
- tracker_config_set_index_removable_devices (TRACKER_CONFIG (object),
- g_value_get_boolean (value));
- break;
- case PROP_INDEX_OPTICAL_DISCS:
- tracker_config_set_index_optical_discs (TRACKER_CONFIG (object),
- g_value_get_boolean (value));
- break;
- case PROP_LOW_DISK_SPACE_LIMIT:
- tracker_config_set_low_disk_space_limit (TRACKER_CONFIG (object),
- g_value_get_int (value));
- break;
+ /* NOTE: We handle these specifically because we
+ * create convenience data around these lists.
+ */
case PROP_INDEX_RECURSIVE_DIRECTORIES: {
GStrv strv = g_value_get_boxed (value);
GSList *dirs = tracker_string_list_to_gslist (strv, -1);
- tracker_config_set_index_recursive_directories (TRACKER_CONFIG (object), dirs);
+ config_set_index_recursive_directories (TRACKER_CONFIG (object), dirs);
g_slist_foreach (dirs, (GFunc) g_free, NULL);
g_slist_free (dirs);
@@ -388,7 +376,7 @@ config_set_property (GObject *object,
GStrv strv = g_value_get_boxed (value);
GSList *dirs = tracker_string_list_to_gslist (strv, -1);
- tracker_config_set_index_single_directories (TRACKER_CONFIG (object), dirs);
+ config_set_index_single_directories (TRACKER_CONFIG (object), dirs);
g_slist_foreach (dirs, (GFunc) g_free, NULL);
g_slist_free (dirs);
@@ -398,7 +386,7 @@ config_set_property (GObject *object,
GStrv strv = g_value_get_boxed (value);
GSList *dirs = tracker_string_list_to_gslist (strv, -1);
- tracker_config_set_ignored_directories (TRACKER_CONFIG (object), dirs);
+ config_set_ignored_directories (TRACKER_CONFIG (object), dirs);
g_slist_foreach (dirs, (GFunc) g_free, NULL);
g_slist_free (dirs);
@@ -408,7 +396,7 @@ config_set_property (GObject *object,
GStrv strv = g_value_get_boxed (value);
GSList *dirs = tracker_string_list_to_gslist (strv, -1);
- tracker_config_set_ignored_directories_with_content (TRACKER_CONFIG (object), dirs);
+ config_set_ignored_directories_with_content (TRACKER_CONFIG (object), dirs);
g_slist_foreach (dirs, (GFunc) g_free, NULL);
g_slist_free (dirs);
@@ -418,28 +406,14 @@ config_set_property (GObject *object,
GStrv strv = g_value_get_boxed (value);
GSList *files = tracker_string_list_to_gslist (strv, -1);
- tracker_config_set_ignored_files (TRACKER_CONFIG (object), files);
+ config_set_ignored_files (TRACKER_CONFIG (object), files);
g_slist_foreach (files, (GFunc) g_free, NULL);
g_slist_free (files);
break;
}
- case PROP_CRAWLING_INTERVAL:
- tracker_config_set_crawling_interval (TRACKER_CONFIG (object),
- g_value_get_int (value));
- break;
- case PROP_REMOVABLE_DAYS_THRESHOLD:
- tracker_config_set_removable_days_threshold (TRACKER_CONFIG (object),
- g_value_get_int (value));
- break;
-
- /* Writeback */
- case PROP_ENABLE_WRITEBACK:
- tracker_config_set_enable_writeback (TRACKER_CONFIG (object),
- g_value_get_boolean (value));
- break;
default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+ /* We don't care about the others... we don't save anyway. */
break;
};
}
@@ -515,6 +489,8 @@ config_get_property (GObject *object,
case PROP_ENABLE_WRITEBACK:
g_value_set_boolean (value, tracker_config_get_enable_writeback (config));
break;
+
+ /* Did we miss any new properties? */
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
break;
@@ -569,6 +545,14 @@ config_finalize (GObject *object)
g_slist_foreach (priv->index_recursive_directories_unfiltered, (GFunc) g_free, NULL);
g_slist_free (priv->index_recursive_directories_unfiltered);
+ if (priv->config_file) {
+ g_signal_handlers_disconnect_by_func (priv->config_file,
+ config_file_changed_cb,
+ TRACKER_CONFIG (object));
+ g_object_unref (priv->config_file);
+ priv->config_file = NULL;
+ }
+
(G_OBJECT_CLASS (tracker_config_parent_class)->finalize) (object);
}
@@ -720,54 +704,83 @@ config_set_ignored_directory_conveniences (TrackerConfig *config)
static void
config_constructed (GObject *object)
{
+ TrackerConfig *config;
TrackerConfigFile *config_file;
GSettings *settings;
(G_OBJECT_CLASS (tracker_config_parent_class)->constructed) (object);
+ config = TRACKER_CONFIG (object);
settings = G_SETTINGS (object);
- /* NOTE: We don't delay because otherwise updates to settings
- * from tracker-preferences will not happen before we notify
- * about the property change. This is because the GValue in
- * set_property() is not up to date at the time we are called
- * back. Quite fscking stupid really if you ask me.
+ /* NOTE: Without the _delay() call the updates to settings
+ * from tracker-preferences may not happen before we notify
+ * about the property change from _set_*() APIs. This is
+ * because the GValue in set_property() is not up to date at
+ * the time we are called back. Quite fscking stupid really if
+ * you ask me.
+ *
+ * NOTE: We need this. If we don't we can't have local
+ * settings which are *NOT* stored in the GSettings database.
+ * We need this for overriding things like verbosity on start
+ * up.
*/
- /* g_settings_delay (settings); */
+ g_settings_delay (settings);
/* Set up bindings */
- g_settings_bind (settings, "verbosity", object, "verbosity", G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "sched-idle", object, "sched-idle", G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "initial-sleep", object, "initial-sleep", G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "throttle", object, "throttle", G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "low-disk-space-limit", object, "low-disk-space-limit",
G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "crawling-interval", object, "crawling-interval", G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "low-disk-space-limit", object, "low-disk-space-limit",
G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "removable-days-threshold", object, "removable-days-threshold",
G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "enable-monitors", object, "enable-monitors", G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "enable-writeback", object, "enable-writeback", G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "index-removable-devices", object, "index-removable-devices",
G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "index-optical-discs", object, "index-optical-discs",
G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "index-on-battery", object, "index-on-battery", G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "index-on-battery-first-time", object, "index-on-battery-first-time",
G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "index-recursive-directories", object, "index-recursive-directories",
G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "index-single-directories", object, "index-single-directories",
G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "ignored-files", object, "ignored-files", G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "ignored-directories", object, "ignored-directories",
G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (settings, "ignored-directories-with-content", object,
"ignored-directories-with-content", G_SETTINGS_BIND_DEFAULT);
+ g_settings_bind (settings, "verbosity", object, "verbosity", G_SETTINGS_BIND_GET_NO_CHANGES);
+ g_settings_bind (settings, "sched-idle", object, "sched-idle", G_SETTINGS_BIND_GET);
+ g_settings_bind (settings, "initial-sleep", object, "initial-sleep", G_SETTINGS_BIND_GET_NO_CHANGES);
+ g_settings_bind (settings, "throttle", object, "throttle", G_SETTINGS_BIND_GET);
+ g_settings_bind (settings, "low-disk-space-limit", object, "low-disk-space-limit",
G_SETTINGS_BIND_GET);
+ g_settings_bind (settings, "crawling-interval", object, "crawling-interval", G_SETTINGS_BIND_GET);
+ g_settings_bind (settings, "low-disk-space-limit", object, "low-disk-space-limit",
G_SETTINGS_BIND_GET);
+ g_settings_bind (settings, "removable-days-threshold", object, "removable-days-threshold",
G_SETTINGS_BIND_GET);
+ g_settings_bind (settings, "enable-monitors", object, "enable-monitors", G_SETTINGS_BIND_GET);
+ g_settings_bind (settings, "enable-writeback", object, "enable-writeback", G_SETTINGS_BIND_GET);
+ g_settings_bind (settings, "index-removable-devices", object, "index-removable-devices",
G_SETTINGS_BIND_GET);
+ g_settings_bind (settings, "index-optical-discs", object, "index-optical-discs", G_SETTINGS_BIND_GET);
+ g_settings_bind (settings, "index-on-battery", object, "index-on-battery", G_SETTINGS_BIND_GET);
+ g_settings_bind (settings, "index-on-battery-first-time", object, "index-on-battery-first-time",
G_SETTINGS_BIND_GET);
+ g_settings_bind (settings, "index-recursive-directories", object, "index-recursive-directories",
G_SETTINGS_BIND_GET);
+ g_settings_bind (settings, "index-single-directories", object, "index-single-directories",
G_SETTINGS_BIND_GET);
+ g_settings_bind (settings, "ignored-files", object, "ignored-files", G_SETTINGS_BIND_GET);
+ g_settings_bind (settings, "ignored-directories", object, "ignored-directories", G_SETTINGS_BIND_GET);
+ g_settings_bind (settings, "ignored-directories-with-content", object,
"ignored-directories-with-content", G_SETTINGS_BIND_GET);
/* Migrate keyfile-based configuration */
config_file = tracker_config_file_new ();
if (config_file) {
- tracker_config_file_migrate (config_file, G_SETTINGS (object), migration);
- g_object_unref (config_file);
+ /* NOTE: Migration works both ways... */
+ tracker_config_file_migrate (config_file, settings, migration);
+
+ if (G_UNLIKELY (g_getenv ("TRACKER_USE_CONFIG_FILES"))) {
+ TrackerConfigPrivate *priv;
+
+ g_signal_connect (config_file, "changed", G_CALLBACK (config_file_changed_cb),
config);
+
+ priv = config->priv;
+ priv->config_file = config_file;
+ } else {
+ g_object_unref (config_file);
+ }
}
config_set_ignored_file_conveniences (TRACKER_CONFIG (object));
config_set_ignored_directory_conveniences (TRACKER_CONFIG (object));
}
+static void
+config_file_changed_cb (TrackerConfigFile *config_file,
+ gpointer user_data)
+{
+ GSettings *settings = G_SETTINGS (user_data);
+
+ tracker_info ("Settings have changed in INI file, we need to restart to take advantage of those
changes!");
+ tracker_config_file_import_to_settings (config_file, settings, migration);
+}
+
TrackerConfig *
tracker_config_new (void)
{
@@ -777,107 +790,6 @@ tracker_config_new (void)
NULL);
}
-static gchar **
-directories_to_strv (GSList *dirs)
-{
- gchar **strv;
- guint i = 0;
- GSList *l;
-
- strv = g_new0 (gchar*, g_slist_length (dirs) + 1);
-
- for (l = dirs; l; l = l->next) {
- const gchar *path_to_use;
-
- /* FIXME: This doesn't work
- * perfectly, what if DESKTOP
- * and DOCUMENTS are in the
- * same place? Then this
- * breaks. Need a better
- * solution at some point.
- */
- if (g_strcmp0 (l->data, g_get_home_dir ()) == 0) {
- /* Home dir gets straight into configuration,
- * regardless of having XDG dirs pointing to it.
- */
- path_to_use = "$HOME";
- } else if (g_strcmp0 (l->data, g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP)) == 0) {
- path_to_use = "&DESKTOP";
- } else if (g_strcmp0 (l->data, g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS)) == 0) {
- path_to_use = "&DOCUMENTS";
- } else if (g_strcmp0 (l->data, g_get_user_special_dir (G_USER_DIRECTORY_DOWNLOAD)) == 0) {
- path_to_use = "&DOWNLOAD";
- } else if (g_strcmp0 (l->data, g_get_user_special_dir (G_USER_DIRECTORY_MUSIC)) == 0) {
- path_to_use = "&MUSIC";
- } else if (g_strcmp0 (l->data, g_get_user_special_dir (G_USER_DIRECTORY_PICTURES)) == 0) {
- path_to_use = "&PICTURES";
- } else if (g_strcmp0 (l->data, g_get_user_special_dir (G_USER_DIRECTORY_PUBLIC_SHARE)) == 0) {
- path_to_use = "&PUBLIC_SHARE";
- } else if (g_strcmp0 (l->data, g_get_user_special_dir (G_USER_DIRECTORY_TEMPLATES)) == 0) {
- path_to_use = "&TEMPLATES";
- } else if (g_strcmp0 (l->data, g_get_user_special_dir (G_USER_DIRECTORY_VIDEOS)) == 0) {
- path_to_use = "&VIDEOS";
- } else {
- path_to_use = l->data;
- }
-
- strv[i] = g_strdup (path_to_use);
- i++;
- }
-
- return strv;
-}
-
-gboolean
-tracker_config_save (TrackerConfig *config)
-{
- TrackerConfigPrivate *priv;
- gchar **strv;
-
- /* NOTE: This function is never called, we should likely remove it. */
- g_return_val_if_fail (TRACKER_IS_CONFIG (config), FALSE);
-
- priv = config->priv;
-
- /* Store cached values */
- strv = tracker_gslist_to_string_list (priv->ignored_directories_with_content);
- g_settings_set_strv (G_SETTINGS (config),
- "ignored-directories-with-content",
- (const gchar * const *) strv);
- g_strfreev (strv);
-
- strv = tracker_gslist_to_string_list (priv->ignored_files);
- g_settings_set_strv (G_SETTINGS (config),
- "ignored-files",
- (const gchar * const *) strv);
- g_strfreev (strv);
-
- strv = tracker_gslist_to_string_list (priv->ignored_directories);
- g_settings_set_strv (G_SETTINGS (config),
- "ignored-directories",
- (const gchar * const *) strv);
- g_strfreev (strv);
-
- strv = directories_to_strv (priv->index_recursive_directories);
- g_settings_set_strv (G_SETTINGS (config),
- "index-recursive-directories",
- (const gchar * const *) strv);
- g_strfreev (strv);
-
- strv = directories_to_strv (priv->index_single_directories);
- g_settings_set_strv (G_SETTINGS (config),
- "index-single-directories",
- (const gchar * const *) strv);
- g_strfreev (strv);
-
- /* And then apply the config, this is disabled because we
- * don't currently use the g_settings_delay() call, see the
- * comment above for why... */
- /* g_settings_apply (G_SETTINGS (config)); */
-
- return TRUE;
-}
-
gint
tracker_config_get_verbosity (TrackerConfig *config)
{
@@ -1046,114 +958,24 @@ void
tracker_config_set_verbosity (TrackerConfig *config,
gint value)
{
-
g_return_if_fail (TRACKER_IS_CONFIG (config));
+ /* g_object_set (G_OBJECT (config), "verbosity", value, NULL); */
g_settings_set_enum (G_SETTINGS (config), "verbosity", value);
g_object_notify (G_OBJECT (config), "verbosity");
}
void
-tracker_config_set_sched_idle (TrackerConfig *config,
- gint value)
-{
-
- g_return_if_fail (TRACKER_IS_CONFIG (config));
-
- g_settings_set_enum (G_SETTINGS (config), "sched-idle", value);
- g_object_notify (G_OBJECT (config), "sched-idle");
-}
-
-void
tracker_config_set_initial_sleep (TrackerConfig *config,
gint value)
{
g_return_if_fail (TRACKER_IS_CONFIG (config));
+ /* g_object_set (G_OBJECT (config), "initial-sleep", value, NULL); */
g_settings_set_int (G_SETTINGS (config), "initial-sleep", value);
g_object_notify (G_OBJECT (config), "initial-sleep");
}
-void
-tracker_config_set_enable_monitors (TrackerConfig *config,
- gboolean value)
-{
- g_return_if_fail (TRACKER_IS_CONFIG (config));
-
- g_settings_set_boolean (G_SETTINGS (config), "enable-monitors", value);
- g_object_notify (G_OBJECT (config), "enable-monitors");
-}
-
-void
-tracker_config_set_enable_writeback (TrackerConfig *config,
- gboolean value)
-{
- g_return_if_fail (TRACKER_IS_CONFIG (config));
-
- g_settings_set_boolean (G_SETTINGS (config), "enable-writeback", value);
- g_object_notify (G_OBJECT (config), "enable-writeback");
-}
-
-void
-tracker_config_set_throttle (TrackerConfig *config,
- gint value)
-{
- g_return_if_fail (TRACKER_IS_CONFIG (config));
-
- g_settings_set_int (G_SETTINGS (config), "throttle", value);
- g_object_notify (G_OBJECT (config), "throttle");
-}
-
-void
-tracker_config_set_index_on_battery (TrackerConfig *config,
- gboolean value)
-{
- g_return_if_fail (TRACKER_IS_CONFIG (config));
-
- g_settings_set_boolean (G_SETTINGS (config), "index-on-battery", value);
- g_object_notify (G_OBJECT (config), "index-on-battery");
-}
-
-void
-tracker_config_set_index_on_battery_first_time (TrackerConfig *config,
- gboolean value)
-{
- g_return_if_fail (TRACKER_IS_CONFIG (config));
-
- g_settings_set_boolean (G_SETTINGS (config), "index-on-battery-first-time", value);
- g_object_notify (G_OBJECT (config), "index-on-battery-first-time");
-}
-
-void
-tracker_config_set_index_removable_devices (TrackerConfig *config,
- gboolean value)
-{
- g_return_if_fail (TRACKER_IS_CONFIG (config));
-
- g_settings_set_boolean (G_SETTINGS (config), "index-removable-devices", value);
- g_object_notify (G_OBJECT (config), "index-removable-devices");
-}
-
-void
-tracker_config_set_index_optical_discs (TrackerConfig *config,
- gboolean value)
-{
- g_return_if_fail (TRACKER_IS_CONFIG (config));
-
- g_settings_set_boolean (G_SETTINGS (config), "index-optical-discs", value);
- g_object_notify (G_OBJECT (config), "index-optical-discs");
-}
-
-void
-tracker_config_set_low_disk_space_limit (TrackerConfig *config,
- gint value)
-{
- g_return_if_fail (TRACKER_IS_CONFIG (config));
-
- g_settings_set_int (G_SETTINGS (config), "low-disk-space-limit", value);
- g_object_notify (G_OBJECT (config), "low-disk-space-limit");
-}
-
static void
rebuild_filtered_lists (TrackerConfig *config)
{
@@ -1247,9 +1069,9 @@ rebuild_filtered_lists (TrackerConfig *config)
}
}
-void
-tracker_config_set_index_recursive_directories (TrackerConfig *config,
- GSList *roots)
+static void
+config_set_index_recursive_directories (TrackerConfig *config,
+ GSList *roots)
{
TrackerConfigPrivate *priv;
GSList *l;
@@ -1280,9 +1102,9 @@ tracker_config_set_index_recursive_directories (TrackerConfig *config,
rebuild_filtered_lists (config);
}
-void
-tracker_config_set_index_single_directories (TrackerConfig *config,
- GSList *roots)
+static void
+config_set_index_single_directories (TrackerConfig *config,
+ GSList *roots)
{
TrackerConfigPrivate *priv;
GSList *l;
@@ -1313,9 +1135,9 @@ tracker_config_set_index_single_directories (TrackerConfig *config,
rebuild_filtered_lists (config);
}
-void
-tracker_config_set_ignored_directories (TrackerConfig *config,
- GSList *roots)
+static void
+config_set_ignored_directories (TrackerConfig *config,
+ GSList *roots)
{
TrackerConfigPrivate *priv;
GSList *l;
@@ -1349,9 +1171,9 @@ tracker_config_set_ignored_directories (TrackerConfig *config,
g_object_notify (G_OBJECT (config), "ignored-directories");
}
-void
-tracker_config_set_ignored_directories_with_content (TrackerConfig *config,
- GSList *roots)
+static void
+config_set_ignored_directories_with_content (TrackerConfig *config,
+ GSList *roots)
{
TrackerConfigPrivate *priv;
GSList *l;
@@ -1382,9 +1204,9 @@ tracker_config_set_ignored_directories_with_content (TrackerConfig *config,
g_object_notify (G_OBJECT (config), "ignored-directories-with-content");
}
-void
-tracker_config_set_ignored_files (TrackerConfig *config,
- GSList *files)
+static void
+config_set_ignored_files (TrackerConfig *config,
+ GSList *files)
{
TrackerConfigPrivate *priv;
GSList *l;
@@ -1418,26 +1240,6 @@ tracker_config_set_ignored_files (TrackerConfig *config,
g_object_notify (G_OBJECT (config), "ignored-files");
}
-void
-tracker_config_set_crawling_interval (TrackerConfig *config,
- gint interval)
-{
- g_return_if_fail (TRACKER_IS_CONFIG (config));
-
- g_settings_set_int (G_SETTINGS (config), "crawling-interval", interval);
- g_object_notify (G_OBJECT (config), "crawling-interval");
-}
-
-void
-tracker_config_set_removable_days_threshold (TrackerConfig *config,
- gint value)
-{
- g_return_if_fail (TRACKER_IS_CONFIG (config));
-
- g_settings_set_int (G_SETTINGS (config), "removable-days-threshold", value);
- g_object_notify (G_OBJECT (config), "removable-days-threshold");
-}
-
/*
* Convenience functions
*/
diff --git a/src/miners/fs/tracker-config.h b/src/miners/fs/tracker-config.h
index ca64606..856a5a1 100644
--- a/src/miners/fs/tracker-config.h
+++ b/src/miners/fs/tracker-config.h
@@ -48,7 +48,6 @@ struct TrackerConfigClass {
GType tracker_config_get_type (void) G_GNUC_CONST;
TrackerConfig *tracker_config_new (void);
-gboolean tracker_config_save (TrackerConfig *config);
gint tracker_config_get_verbosity (TrackerConfig *config);
gint tracker_config_get_sched_idle (TrackerConfig *config);
@@ -72,42 +71,8 @@ gboolean tracker_config_get_enable_writeback (TrackerConfi
void tracker_config_set_verbosity (TrackerConfig *config,
gint value);
-void tracker_config_set_sched_idle (TrackerConfig *config,
- gint value);
void tracker_config_set_initial_sleep (TrackerConfig *config,
gint value);
-void tracker_config_set_enable_monitors (TrackerConfig *config,
- gboolean value);
-void tracker_config_set_throttle (TrackerConfig *config,
- gint value);
-void tracker_config_set_index_on_battery (TrackerConfig *config,
- gboolean value);
-void tracker_config_set_index_on_battery_first_time (TrackerConfig *config,
- gboolean value);
-void tracker_config_set_index_removable_devices (TrackerConfig *config,
- gboolean value);
-void tracker_config_set_index_optical_discs (TrackerConfig *config,
- gboolean value);
-void tracker_config_set_index_mounted_directories (TrackerConfig *config,
- gboolean value);
-void tracker_config_set_low_disk_space_limit (TrackerConfig *config,
- gint value);
-void tracker_config_set_index_recursive_directories (TrackerConfig *config,
- GSList *files);
-void tracker_config_set_index_single_directories (TrackerConfig *config,
- GSList *files);
-void tracker_config_set_ignored_directories (TrackerConfig *config,
- GSList *files);
-void tracker_config_set_ignored_directories_with_content (TrackerConfig *config,
- GSList *files);
-void tracker_config_set_ignored_files (TrackerConfig *config,
- GSList *files);
-void tracker_config_set_crawling_interval (TrackerConfig *config,
- gint interval);
-void tracker_config_set_removable_days_threshold (TrackerConfig *config,
- gint value);
-void tracker_config_set_enable_writeback (TrackerConfig *config,
- gboolean value);
/*
* Convenience functions:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]