summaryrefslogtreecommitdiff
path: root/gtk/gtksearchenginetracker.c
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2007-06-22 14:32:22 +0000
committerEmmanuele Bassi <ebassi@src.gnome.org>2007-06-22 14:32:22 +0000
commit477067ee43bca4b630bf6dd0b1b1632db404b16e (patch)
treeda0c27eb7f034776f6832715bf80891d501f4e68 /gtk/gtksearchenginetracker.c
parent76f9babaae3717205650b067548d98e365bfc6bf (diff)
downloadgtk+-477067ee43bca4b630bf6dd0b1b1632db404b16e.tar.gz
Remove the MIME type calls and queries from the search engine
2007-06-22 Emmanuele Bassi <ebassi@gnome.org> * gtk/gtksearchenginebeagle.c: * gtk/gtksearchenginesimple.c: * gtk/gtksearchenginetracker.c: Remove the MIME type calls and queries from the search engine implementations, since we use our own GtkFileSystem to filter out basing on MIME types and we cannot query MIME types anyway. The GtkQuery private object still has MIME type, as well as location, support for future expansion. svn path=/trunk/; revision=18219
Diffstat (limited to 'gtk/gtksearchenginetracker.c')
-rw-r--r--gtk/gtksearchenginetracker.c99
1 files changed, 18 insertions, 81 deletions
diff --git a/gtk/gtksearchenginetracker.c b/gtk/gtksearchenginetracker.c
index 7d63461369..941ad3f384 100644
--- a/gtk/gtksearchenginetracker.c
+++ b/gtk/gtksearchenginetracker.c
@@ -27,6 +27,8 @@
#include <tracker.h>
#endif
+/* we dlopen() libtracker at runtime */
+
typedef struct _TrackerClient TrackerClient;
typedef void (*TrackerArrayReply) (char **result, GError *error, gpointer user_data);
@@ -39,22 +41,11 @@ static void (*tracker_search_metadata_by_text_async) (TrackerClient *client,
const char *query,
TrackerArrayReply callback,
gpointer user_data) = NULL;
-static void (*tracker_search_metadata_by_text_and_mime_async) (TrackerClient *client,
- const char *query,
- const char **mimes,
- TrackerArrayReply callback,
- gpointer user_data) = NULL;
static void (*tracker_search_metadata_by_text_and_location_async) (TrackerClient *client,
const char *query,
const char *location,
TrackerArrayReply callback,
gpointer user_data) = NULL;
-static void (*tracker_search_metadata_by_text_and_mime_and_location_async) (TrackerClient *client,
- const char *query,
- const char **mimes,
- const char *location,
- TrackerArrayReply callback,
- gpointer user_data) = NULL;
static struct TrackerDlMapping
{
@@ -67,9 +58,7 @@ static struct TrackerDlMapping
MAP (tracker_disconnect),
MAP (tracker_cancel_last_call),
MAP (tracker_search_metadata_by_text_async),
- MAP (tracker_search_metadata_by_text_and_mime_async),
MAP (tracker_search_metadata_by_text_and_location_async),
- MAP (tracker_search_metadata_by_text_and_mime_and_location_async)
#undef MAP
};
@@ -164,9 +153,9 @@ search_callback (gchar **results,
{
gchar *uri;
- uri = g_filename_to_uri ((char *)*results_p, NULL, NULL);
+ uri = g_filename_to_uri (*results_p, NULL, NULL);
if (uri)
- hit_uris = g_list_prepend (hit_uris, (char *)uri);
+ hit_uris = g_list_prepend (hit_uris, uri);
}
_gtk_search_engine_hits_added (GTK_SEARCH_ENGINE (tracker), hit_uris);
@@ -182,10 +171,7 @@ static void
gtk_search_engine_tracker_start (GtkSearchEngine *engine)
{
GtkSearchEngineTracker *tracker;
- GList *mimetypes, *l;
- gchar *search_text, *location, *location_uri;
- gchar **mimes;
- gint i, mime_count;
+ gchar *search_text, *location, *location_uri;
tracker = GTK_SEARCH_ENGINE_TRACKER (engine);
@@ -196,82 +182,34 @@ gtk_search_engine_tracker_start (GtkSearchEngine *engine)
return;
search_text = _gtk_query_get_text (tracker->priv->query);
-
- mimetypes = _gtk_query_get_mime_types (tracker->priv->query);
-
location_uri = _gtk_query_get_location (tracker->priv->query);
-
+
+ location = NULL;
if (location_uri)
{
location = g_filename_from_uri (location_uri, NULL, NULL);
g_free (location_uri);
}
- else
- {
- location = NULL;
- }
-
- mime_count = g_list_length (mimetypes);
- i = 0;
-
- /* convert list into array */
- if (mime_count > 0)
+ if (location)
{
- mimes = g_new (gchar *, (mime_count + 1));
-
- for (l = mimetypes; l != NULL; l = l->next)
- {
- mimes[i] = g_strdup (l->data);
- i++;
- }
-
- mimes[mime_count] = NULL;
-
- if (location)
- {
- tracker_search_metadata_by_text_and_mime_and_location_async (tracker->priv->client,
- search_text, (const char **)mimes, location,
- search_callback,
- tracker);
- g_free (location);
- }
- else
- {
- tracker_search_metadata_by_text_and_mime_async (tracker->priv->client,
- search_text, (const char**)mimes,
- search_callback,
- tracker);
- }
-
- g_strfreev (mimes);
-
-
+ tracker_search_metadata_by_text_and_location_async (tracker->priv->client,
+ search_text,
+ location,
+ search_callback,
+ tracker);
+ g_free (location);
}
else
{
- if (location)
- {
- tracker_search_metadata_by_text_and_location_async (tracker->priv->client,
- search_text,
- location,
- search_callback,
- tracker);
- g_free (location);
- }
- else
- {
- tracker_search_metadata_by_text_async (tracker->priv->client,
- search_text,
- search_callback,
- tracker);
- }
+ tracker_search_metadata_by_text_async (tracker->priv->client,
+ search_text,
+ search_callback,
+ tracker);
}
tracker->priv->query_pending = TRUE;
g_free (search_text);
- g_list_foreach (mimetypes, (GFunc)g_free, NULL);
- g_list_free (mimetypes);
}
static void
@@ -355,7 +293,6 @@ _gtk_search_engine_tracker_new (void)
engine = g_object_new (GTK_TYPE_SEARCH_ENGINE_TRACKER, NULL);
engine->priv->client = tracker_client;
-
engine->priv->query_pending = FALSE;
return GTK_SEARCH_ENGINE (engine);