static void query_editor_changed_callback (NemoQueryEditor *editor, NemoQuery *query, gboolean reload, NemoWindowSlot *slot) { NemoDirectory *directory; g_assert (NEMO_IS_FILE (slot->viewed_file)); directory = nemo_directory_get_for_file (slot->viewed_file); if (!NEMO_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); /* Focus is now on the new slot, move it back to query_editor */ gtk_widget_grab_focus (GTK_WIDGET (slot->query_editor)); } else { sync_search_directory (slot); } nemo_directory_unref (directory); }
static gboolean nemo_drag_can_accept_files (NemoFile *drop_target_item) { NemoDirectory *directory; if (nemo_file_is_directory (drop_target_item)) { gboolean res; /* target is a directory, accept if editable */ directory = nemo_directory_get_for_file (drop_target_item); res = nemo_directory_is_editable (directory); nemo_directory_unref (directory); return res; } if (NEMO_IS_DESKTOP_ICON_FILE (drop_target_item)) { return TRUE; } /* Launchers are an acceptable drop target */ if (nemo_file_is_launcher (drop_target_item)) { return TRUE; } if (nemo_is_file_roller_installed () && nemo_file_is_archive (drop_target_item)) { return TRUE; } return FALSE; }
static void sync_search_directory (NemoWindowSlot *slot) { NemoDirectory *directory; NemoQuery *query; g_assert (NEMO_IS_FILE (slot->viewed_file)); directory = nemo_directory_get_for_file (slot->viewed_file); g_assert (NEMO_IS_SEARCH_DIRECTORY (directory)); query = nemo_query_editor_get_query (slot->query_editor); nemo_search_directory_set_query (NEMO_SEARCH_DIRECTORY (directory), query); g_object_unref (query); nemo_window_slot_reload (slot); nemo_directory_unref (directory); }
static gboolean update_node_without_reporting (FMTreeModel *model, TreeNode *node) { gboolean changed; changed = FALSE; if (node->directory == NULL && (nemo_file_is_directory (node->file) || node->parent == NULL)) { node->directory = nemo_directory_get_for_file (node->file); } else if (node->directory != NULL && !(nemo_file_is_directory (node->file) || node->parent == NULL)) { stop_monitoring_directory (model, node); destroy_children (model, node); nemo_directory_unref (node->directory); node->directory = NULL; } changed |= tree_node_update_display_name (node); changed |= tree_node_update_closed_pixbuf (node); changed |= tree_node_update_open_pixbuf (node); return changed; }