static void sync_search_directory (NautilusWindowSlot *slot) { NautilusDirectory *directory; NautilusQuery *query; gchar *text; GFile *location; g_assert (NAUTILUS_IS_FILE (slot->viewed_file)); directory = nautilus_directory_get_for_file (slot->viewed_file); g_assert (NAUTILUS_IS_SEARCH_DIRECTORY (directory)); query = nautilus_query_editor_get_query (slot->query_editor); text = nautilus_query_get_text (query); if (!strlen (text)) { location = nautilus_query_editor_get_location (slot->query_editor); slot->load_with_search = TRUE; nautilus_window_slot_open_location (slot, location, 0); g_object_unref (location); } else { nautilus_search_directory_set_query (NAUTILUS_SEARCH_DIRECTORY (directory), query); nautilus_window_slot_reload (slot); } g_free (text); g_object_unref (query); nautilus_directory_unref (directory); }
static void nautilus_search_engine_beagle_start (NautilusSearchEngine *engine) { NautilusSearchEngineBeagle *beagle; GError *error; GList *mimetypes, *l; char *text, *mimetype; error = NULL; beagle = NAUTILUS_SEARCH_ENGINE_BEAGLE (engine); if (beagle->details->current_query) { return; } beagle->details->query_finished = FALSE; beagle->details->current_query = beagle_query_new (); g_signal_connect (beagle->details->current_query, "hits-added", G_CALLBACK (beagle_hits_added), engine); g_signal_connect (beagle->details->current_query, "hits-subtracted", G_CALLBACK (beagle_hits_subtracted), engine); g_signal_connect (beagle->details->current_query, "finished", G_CALLBACK (beagle_finished), engine); g_signal_connect (beagle->details->current_query, "error", G_CALLBACK (beagle_error), engine); /* We only want files */ beagle_query_add_text (beagle->details->current_query," type:File"); beagle_query_set_max_hits (beagle->details->current_query, 1000); text = nautilus_query_get_text (beagle->details->query); beagle_query_add_text (beagle->details->current_query, text); mimetypes = nautilus_query_get_mime_types (beagle->details->query); for (l = mimetypes; l != NULL; l = l->next) { char* temp; mimetype = l->data; temp = g_strconcat (" mimetype:", mimetype, NULL); beagle_query_add_text (beagle->details->current_query,temp); g_free (temp); } beagle->details->current_query_uri_prefix = nautilus_query_get_location (beagle->details->query); if (!beagle_client_send_request_async (beagle->details->client, BEAGLE_REQUEST (beagle->details->current_query), &error)) { nautilus_search_engine_error (engine, error->message); g_error_free (error); } /* These must live during the lifetime of the query */ g_free (text); eel_g_list_free_deep (mimetypes); }