static void nautilus_desktop_directory_file_init (NautilusDesktopDirectoryFile *desktop_file) { NautilusDesktopDirectory *desktop_directory; NautilusDirectory *real_dir; NautilusFile *real_dir_file; desktop_file->details = G_TYPE_INSTANCE_GET_PRIVATE (desktop_file, NAUTILUS_TYPE_DESKTOP_DIRECTORY_FILE, NautilusDesktopDirectoryFileDetails); desktop_directory = NAUTILUS_DESKTOP_DIRECTORY (nautilus_directory_get_by_uri (EEL_DESKTOP_URI)); desktop_file->details->desktop_directory = desktop_directory; desktop_file->details->callbacks = g_hash_table_new (desktop_callback_hash, desktop_callback_equal); desktop_file->details->monitors = g_hash_table_new_full (NULL, NULL, NULL, monitor_destroy); real_dir = nautilus_desktop_directory_get_real_directory (desktop_directory); real_dir_file = nautilus_directory_get_corresponding_file (real_dir); nautilus_directory_unref (real_dir); desktop_file->details->real_dir_file = real_dir_file; nautilus_desktop_update_metadata_from_keyfile (NAUTILUS_FILE (desktop_file), "directory"); g_signal_connect_object (real_dir_file, "changed", G_CALLBACK (real_file_changed_callback), desktop_file, 0); }
static void search_engine_hits_added (NautilusSearchEngine *engine, GList *hits, NautilusSearchDirectory *search) { GList *hit_list; GList *file_list; NautilusFile *file; SearchMonitor *monitor; GList *monitor_list; file_list = NULL; for (hit_list = hits; hit_list != NULL; hit_list = hit_list->next) { NautilusSearchHit *hit = hit_list->data; const char *uri; uri = nautilus_search_hit_get_uri (hit); if (g_str_has_suffix (uri, NAUTILUS_SAVED_SEARCH_EXTENSION)) { /* Never return saved searches themselves as hits */ continue; } nautilus_search_hit_compute_scores (hit, search->details->query); file = nautilus_file_get_by_uri (uri); nautilus_file_set_search_relevance (file, nautilus_search_hit_get_relevance (hit)); for (monitor_list = search->details->monitor_list; monitor_list; monitor_list = monitor_list->next) { monitor = monitor_list->data; /* Add monitors */ nautilus_file_monitor_add (file, monitor, monitor->monitor_attributes); } g_signal_connect (file, "changed", G_CALLBACK (file_changed), search), file_list = g_list_prepend (file_list, file); g_hash_table_add (search->details->files_hash, file); } search->details->files = g_list_concat (search->details->files, file_list); nautilus_directory_emit_files_added (NAUTILUS_DIRECTORY (search), file_list); file = nautilus_directory_get_corresponding_file (NAUTILUS_DIRECTORY (search)); nautilus_file_emit_changed (file); nautilus_file_unref (file); search_directory_add_pending_files_callbacks (search); }
gboolean nautilus_directory_is_remote (NautilusDirectory *directory) { NautilusFile *file; gboolean is_remote; g_assert (NAUTILUS_IS_DIRECTORY (directory)); file = nautilus_directory_get_corresponding_file (directory); is_remote = nautilus_file_is_remote (file); nautilus_file_unref (file); return is_remote; }
static void search_force_reload (NautilusDirectory *directory) { NautilusSearchDirectory *search; NautilusFile *file; search = NAUTILUS_SEARCH_DIRECTORY (directory); if (!search->details->query) { return; } search->details->search_ready_and_valid = FALSE; /* Remove file monitors */ reset_file_list (search); stop_search (search); file = nautilus_directory_get_corresponding_file (directory); nautilus_file_invalidate_all_attributes (file); nautilus_file_unref (file); }