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);
}
Пример #3
0
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));
}
Пример #5
0
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);
}
Пример #6
0
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);
}
Пример #8
0
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");
}
Пример #9
0
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);
    }
}