static void beagle_error (BeagleQuery *query, GError *error, NautilusSearchEngineBeagle *engine) { nautilus_search_engine_error (NAUTILUS_SEARCH_ENGINE (engine), error->message); }
static void beagle_hits_added (BeagleQuery *query, BeagleHitsAddedResponse *response, NautilusSearchEngineBeagle *engine) { GSList *hits, *list; GList *hit_uris; const char *uri; hit_uris = NULL; hits = beagle_hits_added_response_get_hits (response); for (list = hits; list != NULL; list = list->next) { BeagleHit *hit = BEAGLE_HIT (list->data); uri = beagle_hit_get_uri (hit); if (engine->details->current_query_uri_prefix && !g_str_has_prefix (uri, engine->details->current_query_uri_prefix)) { continue; } hit_uris = g_list_prepend (hit_uris, (char *)uri); } nautilus_search_engine_hits_added (NAUTILUS_SEARCH_ENGINE (engine), hit_uris); g_list_free (hit_uris); }
static gboolean nautilus_search_engine_is_running (NautilusSearchProvider *provider) { NautilusSearchEngine *engine; NautilusSearchEnginePrivate *priv; engine = NAUTILUS_SEARCH_ENGINE (provider); priv = nautilus_search_engine_get_instance_private (engine); return priv->running; }
static void beagle_finished (BeagleQuery *query, BeagleFinishedResponse *response, NautilusSearchEngineBeagle *engine) { /* For some reason we keep getting finished events, * only emit finished once */ if (engine->details->query_finished) { return; } engine->details->query_finished = TRUE; nautilus_search_engine_finished (NAUTILUS_SEARCH_ENGINE (engine)); }
static void nautilus_search_engine_set_query (NautilusSearchProvider *provider, NautilusQuery *query) { NautilusSearchEngine *engine; NautilusSearchEnginePrivate *priv; engine = NAUTILUS_SEARCH_ENGINE (provider); priv = nautilus_search_engine_get_instance_private (engine); nautilus_search_provider_set_query (NAUTILUS_SEARCH_PROVIDER (priv->tracker), query); nautilus_search_provider_set_query (NAUTILUS_SEARCH_PROVIDER (priv->recent), query); nautilus_search_provider_set_query (NAUTILUS_SEARCH_PROVIDER (priv->model), query); nautilus_search_provider_set_query (NAUTILUS_SEARCH_PROVIDER (priv->simple), query); }
static void nautilus_search_engine_finalize (GObject *object) { NautilusSearchEngine *engine; NautilusSearchEnginePrivate *priv; engine = NAUTILUS_SEARCH_ENGINE (object); priv = nautilus_search_engine_get_instance_private (engine); g_hash_table_destroy (priv->uris); g_clear_object (&priv->tracker); g_clear_object (&priv->recent); g_clear_object (&priv->model); g_clear_object (&priv->simple); G_OBJECT_CLASS (nautilus_search_engine_parent_class)->finalize (object); }
static void beagle_hits_subtracted (BeagleQuery *query, BeagleHitsSubtractedResponse *response, NautilusSearchEngineBeagle *engine) { GSList *uris, *list; GList *hit_uris; hit_uris = NULL; uris = beagle_hits_subtracted_response_get_uris (response); for (list = uris; list != NULL; list = list->next) { hit_uris = g_list_prepend (hit_uris, (char *)list->data); } nautilus_search_engine_hits_subtracted (NAUTILUS_SEARCH_ENGINE (engine), hit_uris); g_list_free (hit_uris); }
static void nautilus_search_engine_stop (NautilusSearchProvider *provider) { NautilusSearchEngine *engine; NautilusSearchEnginePrivate *priv; engine = NAUTILUS_SEARCH_ENGINE (provider); priv = nautilus_search_engine_get_instance_private (engine); DEBUG ("Search engine stop"); nautilus_search_provider_stop (NAUTILUS_SEARCH_PROVIDER (priv->tracker)); nautilus_search_provider_stop (NAUTILUS_SEARCH_PROVIDER (priv->recent)); nautilus_search_provider_stop (NAUTILUS_SEARCH_PROVIDER (priv->model)); nautilus_search_provider_stop (NAUTILUS_SEARCH_PROVIDER (priv->simple)); priv->running = FALSE; priv->restart = FALSE; g_object_notify (G_OBJECT (provider), "running"); }
void nautilus_search_engine_start_by_target (NautilusSearchProvider *provider, NautilusSearchEngineTarget target_engine) { NautilusSearchEngine *engine; NautilusSearchEnginePrivate *priv; gint num_finished; engine = NAUTILUS_SEARCH_ENGINE (provider); priv = nautilus_search_engine_get_instance_private (engine); DEBUG ("Search engine start"); num_finished = priv->providers_error + priv->providers_finished; if (priv->running) { if (num_finished == priv->providers_running && priv->restart) { search_engine_start_real (engine, target_engine); } return; } priv->running = TRUE; g_object_notify (G_OBJECT (provider), "running"); if (num_finished < priv->providers_running) { priv->restart = TRUE; } else { search_engine_start_real (engine, target_engine); } }