summaryrefslogtreecommitdiff
path: root/gtk/gtksearchenginetracker.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2015-06-18 14:31:02 -0400
committerMatthias Clasen <mclasen@redhat.com>2015-06-18 14:33:13 -0400
commitabe4829e363abeb09d6ae2eef7e0e1bae573865d (patch)
tree8af2a9070e970726925c6716b95a9f247a3003aa /gtk/gtksearchenginetracker.c
parent4b8df8c546a769d578437cec8bbf4e5d61d12965 (diff)
downloadgtk+-abe4829e363abeb09d6ae2eef7e0e1bae573865d.tar.gz
search engine: Pass file infos along for hits
Diffstat (limited to 'gtk/gtksearchenginetracker.c')
-rw-r--r--gtk/gtksearchenginetracker.c28
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);