int main (int argc, char **argv) { CajaDirectory *directory; CajaQuery *query; client1 = g_new0 (int, 1); client2 = g_new0 (int, 1); gtk_init (&argc, &argv); query = caja_query_new (); caja_query_set_text (query, "richard hult"); directory = caja_directory_get_by_uri ("x-caja-search://0/"); caja_search_directory_set_query (CAJA_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); caja_directory_file_monitor_add (directory, client1, TRUE, CAJA_FILE_ATTRIBUTE_INFO, NULL, NULL); gtk_main (); return 0; }
static void desktop_monitor_add (CajaDirectory *directory, gconstpointer client, gboolean monitor_hidden_files, gboolean monitor_backup_files, CajaFileAttributes file_attributes, CajaDirectoryCallback callback, gpointer callback_data) { CajaDesktopDirectory *desktop; MergedMonitor *monitor; GList *merged_callback_list; desktop = CAJA_DESKTOP_DIRECTORY (directory); /* Map the client to a unique value so this doesn't interfere * with direct monitoring of the directory by the same client. */ monitor = g_hash_table_lookup (desktop->details->monitors, client); if (monitor != NULL) { g_assert (monitor->desktop_dir == desktop); } else { monitor = g_new0 (MergedMonitor, 1); monitor->desktop_dir = desktop; g_hash_table_insert (desktop->details->monitors, (gpointer) client, monitor); } monitor->monitor_hidden_files = monitor_hidden_files; monitor->monitor_backup_files = monitor_backup_files; monitor->monitor_attributes = file_attributes; /* Call through to the real directory add calls. */ merged_callback_list = NULL; /* Call up to real dir */ caja_directory_file_monitor_add (desktop->details->real_directory, monitor, monitor_hidden_files, monitor_backup_files, file_attributes, build_merged_callback_list, &merged_callback_list); /* Handle the desktop part */ merged_callback_list = g_list_concat (merged_callback_list, caja_file_list_copy (directory->details->file_list)); if (callback != NULL) { (* callback) (directory, merged_callback_list, callback_data); } caja_file_list_free (merged_callback_list); }