Пример #1
0
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);
}
Пример #2
0
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;
}
Пример #3
0
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);
}
Пример #4
0
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;
}