diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2016-11-19 23:46:00 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2016-11-20 15:28:42 +0100 |
commit | 478d8c1d94c336197e18edc4ff8fadf674a8a438 (patch) | |
tree | 260966001942f2419dba7f51f94e42bd86538000 /src/tracker | |
parent | fab8738273b20c2f4b12c522d895566581c8cd70 (diff) | |
download | tracker-478d8c1d94c336197e18edc4ff8fadf674a8a438.tar.gz |
tracker: Avoid deprecated GSettings API
And use GSettingsSchema/GSettingsSchemaSource. This code is still
disgusting.
Diffstat (limited to 'src/tracker')
-rw-r--r-- | src/tracker/tracker-config.c | 21 | ||||
-rw-r--r-- | src/tracker/tracker-config.h | 1 | ||||
-rw-r--r-- | src/tracker/tracker-reset.c | 2 | ||||
-rw-r--r-- | src/tracker/tracker-status.c | 2 |
4 files changed, 18 insertions, 8 deletions
diff --git a/src/tracker/tracker-config.c b/src/tracker/tracker-config.c index 737b7c064..9dfc143db 100644 --- a/src/tracker/tracker-config.c +++ b/src/tracker/tracker-config.c @@ -37,14 +37,15 @@ tracker_gsettings_get_all (gint *longest_name_length) } SchemaWithPath; TrackerMinerManager *manager; + GSettingsSchemaSource *source; GError *error = NULL; GSettings *settings; GSList *all = NULL; GSList *l; GSList *miners_available; GSList *valid_schemas = NULL; - const gchar * const *schema; - gint len = 0; + gchar **schemas; + gint i, len = 0; SchemaWithPath components[] = { { "Store", "store" }, { "Extract", "extract" }, @@ -65,23 +66,28 @@ tracker_gsettings_get_all (gint *longest_name_length) miners_available = tracker_miner_manager_get_available (manager); - /* Get valid schemas so we don't try to load invalid ones */ - for (schema = g_settings_list_schemas (); schema && *schema; schema++) { - if (!g_str_has_prefix (*schema, "org.freedesktop.Tracker.")) { + source = g_settings_schema_source_get_default (); + g_settings_schema_source_list_schemas (source, TRUE, &schemas, NULL); + + for (i = 0; schemas[i]; i++) { + if (!g_str_has_prefix (schemas[i], "org.freedesktop.Tracker.")) { continue; } - valid_schemas = g_slist_prepend (valid_schemas, g_strdup (*schema)); + valid_schemas = g_slist_prepend (valid_schemas, g_strdup (schemas[i])); } /* Store / General */ for (swp = components; swp && swp->schema; swp++) { + GSettingsSchema *settings_schema; gchar *schema; gchar *path; schema = g_strdup_printf ("org.freedesktop.Tracker.%s", swp->schema); path = g_strdup_printf ("/org/freedesktop/tracker/%s/", swp->path); + settings_schema = g_settings_schema_source_lookup (source, schema, FALSE); + /* If miner doesn't have a schema, no point in getting config */ if (!tracker_string_in_gslist (schema, valid_schemas)) { g_free (path); @@ -97,6 +103,7 @@ tracker_gsettings_get_all (gint *longest_name_length) c->name = g_strdup (swp->schema); c->settings = settings; + c->schema = settings_schema; c->is_miner = FALSE; all = g_slist_prepend (all, c); @@ -156,6 +163,7 @@ tracker_gsettings_get_all (gint *longest_name_length) g_slist_foreach (miners_available, (GFunc) g_free, NULL); g_slist_free (miners_available); g_object_unref (manager); + g_strfreev (schemas); if (longest_name_length) { *longest_name_length = len; @@ -198,6 +206,7 @@ tracker_gsettings_free (GSList *all) g_free (c->name); g_object_unref (c->settings); + g_object_unref (c->schema); g_slice_free (ComponentGSettings, c); } } diff --git a/src/tracker/tracker-config.h b/src/tracker/tracker-config.h index 748e6b9be..66cf4b890 100644 --- a/src/tracker/tracker-config.h +++ b/src/tracker/tracker-config.h @@ -26,6 +26,7 @@ typedef struct { gchar *name; + GSettingsSchema *schema; GSettings *settings; gboolean is_miner; } ComponentGSettings; diff --git a/src/tracker/tracker-reset.c b/src/tracker/tracker-reset.c index 8278b6061..38116c8ea 100644 --- a/src/tracker/tracker-reset.c +++ b/src/tracker/tracker-reset.c @@ -372,7 +372,7 @@ reset_run (void) g_print (" %s\n", c->name); - keys = g_settings_list_keys (c->settings); + keys = g_settings_schema_list_keys (c->schema); for (p = keys; p && *p; p++) { g_print (" %s\n", *p); g_settings_reset (c->settings, *p); diff --git a/src/tracker/tracker-status.c b/src/tracker/tracker-status.c index 12b76d2fd..8364dd231 100644 --- a/src/tracker/tracker-status.c +++ b/src/tracker/tracker-status.c @@ -352,7 +352,7 @@ collect_debug (void) continue; } - keys = g_settings_list_keys (c->settings); + keys = g_settings_schema_list_keys (c->schema); for (p = keys; p && *p; p++) { GVariant *v; gchar *printed; |