int main (int argc, char **argv) { NautilusDirectory *directory; NautilusQuery *query; client1 = g_new0 (int, 1); client2 = g_new0 (int, 1); gtk_init (&argc, &argv); query = nautilus_query_new (); nautilus_query_set_text (query, "richard hult"); directory = nautilus_directory_get_by_uri ("x-nautilus-search://0/"); nautilus_search_directory_set_query (NAUTILUS_SEARCH_DIRECTORY (directory), query); g_object_unref (query); g_signal_connect (directory, "files-added", G_CALLBACK (files_added), NULL); g_signal_connect (directory, "files-changed", G_CALLBACK (files_changed), NULL); g_signal_connect (directory, "done-loading", G_CALLBACK (done_loading), NULL); nautilus_directory_file_monitor_add (directory, client1, TRUE, NAUTILUS_FILE_ATTRIBUTE_INFO, NULL, NULL); gtk_main (); return 0; }
static void action_search (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GtkApplication *application = user_data; const gchar *string, *uri; NautilusQuery *query; NautilusDirectory *directory; gchar *search_uri; NautilusWindow *window; GtkWindow *cur_window; GFile *location; g_variant_get (parameter, "(ss)", &uri, &string); if (strlen (string) == 0 || strlen (uri) == 0) { return; } query = nautilus_query_new (); nautilus_query_set_location (query, uri); nautilus_query_set_text (query, string); search_uri = nautilus_search_directory_generate_new_uri (); location = g_file_new_for_uri (search_uri); g_free (search_uri); directory = nautilus_directory_get (location); nautilus_search_directory_set_query (NAUTILUS_SEARCH_DIRECTORY (directory), query); cur_window = gtk_application_get_active_window (application); window = nautilus_application_create_window (NAUTILUS_APPLICATION (application), cur_window ? gtk_window_get_screen (cur_window) : gdk_screen_get_default ()); nautilus_window_slot_open_location (nautilus_window_get_active_slot (window), location, 0); nautilus_directory_unref (directory); g_object_unref (query); g_object_unref (location); }