예제 #1
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);
}
예제 #2
0
static void
start_search (NautilusSearchDirectory *search)
{
	NautilusSearchEngineModel *model_provider;
	NautilusSearchEngineSimple *simple_provider;
	gboolean recursive;

	if (!search->details->query) {
		return;
	}

	if (search->details->search_running) {
		return;
	}

	if (!search->details->monitor_list && !search->details->pending_callback_list) {
		return;
	}

	/* We need to start the search engine */
	search->details->search_running = TRUE;
	search->details->search_ready_and_valid = FALSE;

	set_hidden_files (search);
	nautilus_search_provider_set_query (NAUTILUS_SEARCH_PROVIDER (search->details->engine),
					    search->details->query);

	model_provider = nautilus_search_engine_get_model_provider (search->details->engine);
	nautilus_search_engine_model_set_model (model_provider, search->details->base_model);

	simple_provider = nautilus_search_engine_get_simple_provider (search->details->engine);
	recursive = nautilus_query_get_recursive (search->details->query);
	g_object_set (simple_provider, "recursive", recursive, NULL);

	reset_file_list (search);

	nautilus_search_provider_start (NAUTILUS_SEARCH_PROVIDER (search->details->engine));
}