Пример #1
0
GList *
nautilus_directory_match_pattern (NautilusDirectory *directory, const char *pattern)
{
	GList *files, *l, *ret;
	GPatternSpec *spec;


	ret = NULL;
	spec = g_pattern_spec_new (pattern);
	
	files = nautilus_directory_get_file_list (directory);
	for (l = files; l; l = l->next) {
		NautilusFile *file;
		char *name;
	       
	        file = NAUTILUS_FILE (l->data);
		name = nautilus_file_get_display_name (file);

		if (g_pattern_match_string (spec, name)) {
			ret = g_list_prepend(ret, nautilus_file_ref (file));	
		}

		g_free (name);
	}

	g_pattern_spec_free (spec);
	nautilus_file_list_free (files);

	return ret;
}
static GList *
desktop_get_file_list (NautilusDirectory *directory)
{
	GList *real_dir_file_list, *desktop_dir_file_list = NULL;
	
	real_dir_file_list = nautilus_directory_get_file_list
				(NAUTILUS_DESKTOP_DIRECTORY (directory)->details->real_directory);
	desktop_dir_file_list = NAUTILUS_DIRECTORY_CLASS (nautilus_desktop_directory_parent_class)->get_file_list (directory);

	return g_list_concat (real_dir_file_list, desktop_dir_file_list);
}
static GList *
desktop_get_file_list (NautilusDirectory *directory)
{
	GList *real_dir_file_list, *desktop_dir_file_list = NULL;
	
	real_dir_file_list = nautilus_directory_get_file_list
				(NAUTILUS_DESKTOP_DIRECTORY (directory)->details->real_directory);
	desktop_dir_file_list = EEL_CALL_PARENT_WITH_RETURN_VALUE (NAUTILUS_DIRECTORY_CLASS, get_file_list, (directory));

	return g_list_concat (real_dir_file_list, desktop_dir_file_list);
}
static gboolean
search_directory_file_get_item_count (NautilusFile *file, 
				      guint *count,
				      gboolean *count_unreadable)
{
	GList *file_list;

	if (count) {
		file_list = nautilus_directory_get_file_list (file->details->directory);

		*count = g_list_length (file_list);

		nautilus_file_list_free (file_list);
	}

	return TRUE;
}
static NautilusRequestStatus
search_directory_file_get_deep_counts (NautilusFile *file,
				       guint *directory_count,
				       guint *file_count,
				       guint *unreadable_directory_count,
				       goffset *total_size)
{
	NautilusSearchDirectory *search_dir;
	NautilusFile *dir_file;
	GList *file_list, *l;
	guint dirs, files;
	GFileType type;

	search_dir = NAUTILUS_SEARCH_DIRECTORY (file->details->directory);
	
	file_list = nautilus_directory_get_file_list (file->details->directory);

	dirs = files = 0;
	for (l = file_list; l != NULL; l = l->next) {
		dir_file = NAUTILUS_FILE (l->data);
		type = nautilus_file_get_file_type (dir_file);
		if (type == G_FILE_TYPE_DIRECTORY) {
			dirs++;
		} else {
			files++;
		}
	}

	if (directory_count != NULL) {
		*directory_count = dirs;
	}
	if (file_count != NULL) {
		*file_count = files;
	}
	if (unreadable_directory_count != NULL) {
		*unreadable_directory_count = 0;
	}
	if (total_size != NULL) {
		/* FIXME: Maybe we want to calculate this? */
		*total_size = 0;
	}
	
	nautilus_file_list_free (file_list);
	
	return NAUTILUS_REQUEST_DONE;
}
static gboolean
search_directory_file_get_item_count (NautilusFile *file, 
				      guint *count,
				      gboolean *count_unreadable)
{
	NautilusSearchDirectory *search_dir;
	GList *file_list;

	if (count) {
		search_dir = NAUTILUS_SEARCH_DIRECTORY (file->details->directory);

		file_list = nautilus_directory_get_file_list (file->details->directory);

		*count = g_list_length (file_list);

		nautilus_file_list_free (file_list);
	}

	return TRUE;
}
Пример #7
0
NautilusFile*
nautilus_directory_get_file_by_name (NautilusDirectory *directory,
                                     const gchar       *name)
{
        GList *files;
        GList *l;
        NautilusFile *result = NULL;

        files = nautilus_directory_get_file_list (directory);

        for (l = files; l != NULL; l = l->next) {
                if (nautilus_file_compare_display_name (l->data, name) == 0) {
                     result = nautilus_file_ref (l->data);
                     break;
                }
        }

        nautilus_file_list_free (files);

        return result;
}