Exemplo n.º 1
0
int file_parent_exec(bContext *C, wmOperator *UNUSED(unused))
{
	SpaceFile *sfile = CTX_wm_space_file(C);
	
	if (sfile->params) {
		if (BLI_parent_dir(sfile->params->dir)) {
			BLI_cleanup_dir(G.main->name, sfile->params->dir);
			/* if not browsing in .blend file, we still want to check whether the path is a directory */
			if (sfile->params->type == FILE_LOADLIB) {
				char tdir[FILE_MAX], tgroup[FILE_MAX];
				if (BLO_is_a_library(sfile->params->dir, tdir, tgroup)) {
					file_change_dir(C, 0);
				}
				else {
					file_change_dir(C, 1);
				}
			}
			else {
				file_change_dir(C, 1);
			}
			WM_event_add_notifier(C, NC_SPACE | ND_SPACE_FILE_LIST, NULL);
		}
	}
	
	return OPERATOR_FINISHED;

}
Exemplo n.º 2
0
static int is_filtered_lib(struct direntry* file, const char* dir, unsigned int filter, short hide_dot)
{
	int is_filtered=0;
	char tdir[FILE_MAX], tgroup[GROUP_MAX];
	if (BLO_is_a_library(dir, tdir, tgroup)) {
		is_filtered = !is_hidden_file(file->relname, hide_dot);
	} else {
		is_filtered = is_filtered_file(file, dir, filter, hide_dot);
	}
	return is_filtered;
}
Exemplo n.º 3
0
static bool is_filtered_lib(struct direntry *file, const char *root, FileListFilter *filter)
{
	bool is_filtered = !is_hidden_file(file->relname, filter);
	char dir[FILE_MAXDIR], group[BLO_GROUP_MAX];

	if (BLO_is_a_library(root, dir, group)) {
		is_filtered = !is_hidden_file(file->relname, filter);
		if (is_filtered && filter->filter && !FILENAME_IS_CURRPAR(file->relname)) {
			if (is_filtered && (filter->filter_search[0] != '\0')) {
				if (fnmatch(filter->filter_search, file->relname, FNM_CASEFOLD) != 0) {
					is_filtered = false;
				}
			}
		}
	}
	else {
		is_filtered = is_filtered_file(file, root, filter);
	}

	return is_filtered;
}
Exemplo n.º 4
0
int filelist_islibrary(struct FileList* filelist, char* dir, char* group)
{
	return BLO_is_a_library(filelist->dir, dir, group);
}