diff options
author | Matthias Clasen <mclasen@redhat.com> | 2015-06-18 14:31:02 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2015-06-18 14:33:13 -0400 |
commit | abe4829e363abeb09d6ae2eef7e0e1bae573865d (patch) | |
tree | 8af2a9070e970726925c6716b95a9f247a3003aa /gtk/gtksearchenginetracker.c | |
parent | 4b8df8c546a769d578437cec8bbf4e5d61d12965 (diff) | |
download | gtk+-abe4829e363abeb09d6ae2eef7e0e1bae573865d.tar.gz |
search engine: Pass file infos along for hits
Diffstat (limited to 'gtk/gtksearchenginetracker.c')
-rw-r--r-- | gtk/gtksearchenginetracker.c | 28 |
1 files changed, 7 insertions, 21 deletions
diff --git a/gtk/gtksearchenginetracker.c b/gtk/gtksearchenginetracker.c index cb815b7d55..562b14d646 100644 --- a/gtk/gtksearchenginetracker.c +++ b/gtk/gtksearchenginetracker.c @@ -173,21 +173,6 @@ get_query_results (GtkSearchEngineTracker *engine, user_data); } -/* Stolen from libtracker-common */ -static GList * -string_list_to_gslist (gchar **strv) -{ - GList *list; - gsize i; - - list = NULL; - - for (i = 0; strv[i]; i++) - list = g_list_prepend (list, g_strdup (strv[i])); - - return g_list_reverse (list); -} - /* Stolen from libtracker-sparql */ static gchar * sparql_escape_string (const gchar *literal) @@ -283,9 +268,9 @@ query_callback (GObject *object, GVariant *reply; GVariant *r; GVariantIter iter; - gchar **result; GError *error = NULL; gint i, n; + GtkSearchHit *hit; tracker = GTK_SEARCH_ENGINE_TRACKER (user_data); @@ -310,7 +295,8 @@ query_callback (GObject *object, r = g_variant_get_child_value (reply, 0); g_variant_iter_init (&iter, r); n = g_variant_iter_n_children (&iter); - result = g_new0 (gchar *, n + 1); + hit = g_new (GtkSearchHit, n); + hits = NULL; for (i = 0; i < n; i++) { GVariant *v; @@ -318,16 +304,16 @@ query_callback (GObject *object, v = g_variant_iter_next_value (&iter); strv = g_variant_get_strv (v, NULL); - result[i] = (gchar*)strv[0]; + hit[i].uri = (gchar*)strv[0]; + hit[i].info = NULL; g_free (strv); + hits = g_list_prepend (hits, &hit[i]); } - /* We iterate result by result, not n at a time. */ - hits = string_list_to_gslist (result); _gtk_search_engine_hits_added (GTK_SEARCH_ENGINE (tracker), hits); _gtk_search_engine_finished (GTK_SEARCH_ENGINE (tracker)); g_list_free (hits); - g_free (result); + g_free (hit); g_variant_unref (reply); g_variant_unref (r); |