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 gboolean nautilus_drag_can_accept_files (NautilusFile *drop_target_item) { NautilusDirectory *directory; if (nautilus_file_is_directory (drop_target_item)) { gboolean res; /* target is a directory, accept if editable */ directory = nautilus_directory_get_for_file (drop_target_item); res = nautilus_directory_is_editable (directory); nautilus_directory_unref (directory); return res; } if (NAUTILUS_IS_DESKTOP_ICON_FILE (drop_target_item)) { return TRUE; } /* Launchers are an acceptable drop target */ if (nautilus_file_is_launcher (drop_target_item)) { return TRUE; } if (nautilus_is_file_roller_installed () && nautilus_file_is_archive (drop_target_item)) { return TRUE; } return FALSE; }
static void query_editor_changed_callback (NautilusSearchBar *bar, NautilusQuery *query, gboolean reload, NautilusWindowSlot *slot) { NautilusDirectory *directory; directory = nautilus_directory_get_for_file (slot->viewed_file); g_assert (NAUTILUS_IS_SEARCH_DIRECTORY (directory)); nautilus_search_directory_set_query (NAUTILUS_SEARCH_DIRECTORY (directory), query); if (reload) { nautilus_window_slot_reload (slot); } nautilus_directory_unref (directory); }
static void query_editor_changed_callback (NautilusQueryEditor *editor, NautilusQuery *query, gboolean reload, NautilusWindowSlot *slot) { NautilusDirectory *directory; g_assert (NAUTILUS_IS_FILE (slot->viewed_file)); directory = nautilus_directory_get_for_file (slot->viewed_file); if (!NAUTILUS_IS_SEARCH_DIRECTORY (directory)) { /* this is the first change from the query editor. we ask for a location change to the search directory, indicate the directory needs to be sync'd with the current query. */ create_new_search (slot); } else { sync_search_directory (slot); } nautilus_directory_unref (directory); }
static gboolean nautilus_drag_can_accept_files (NautilusFile *drop_target_item) { NautilusDirectory *directory; if (nautilus_file_is_directory (drop_target_item)) { gboolean res; /* target is a directory, accept if editable */ directory = nautilus_directory_get_for_file (drop_target_item); res = nautilus_directory_is_editable (directory); nautilus_directory_unref (directory); return res; } if (NAUTILUS_IS_DESKTOP_ICON_FILE (drop_target_item)) { return TRUE; } /* All Nautilus links are assumed to be links to directories. * Therefore, they all can accept drags, like all other * directories to. As with other directories, there can be * errors when the actual copy is attempted due to * permissions. */ if (nautilus_file_is_nautilus_link (drop_target_item)) { return TRUE; } if (nautilus_is_file_roller_installed () && nautilus_file_is_archive (drop_target_item)) { return TRUE; } return FALSE; }