30 if ((filename[0] ==
'.') && (filename[1] ==
'\0')) {
35 if (filename[0] ==
'.' && filename[1] ==
'.' && filename[2] ==
'\0') {
63 if (
filter->filter_search[0] ==
'\0') {
68 return fnmatch(
filter->filter_search, file->
relpath, FNM_CASEFOLD) == 0;
77 if (
filter->filter_search[0] ==
'\0') {
82 return fnmatch(
filter->filter_search, file->
name, FNM_CASEFOLD) == 0;
142 if (!(filter_id &
filter->filter_id)) {
158 return &asset->get_metadata();
166 if (!
filter->asset_catalog_filter) {
170 "prepare_filter_asset_library() should only be called when the file browser is "
171 "in asset browser mode");
173 file_ensure_updated_catalog_filter_data(
filter->asset_catalog_filter, filelist->
asset_library);
203 if (
filter->asset_catalog_filter &&
204 !file_is_asset_visible_in_catalog_filter_settings(
filter->asset_catalog_filter, asset_data))
209 if (
filter->filter_search[0] ==
'\0') {
219 filter_search[string_length - 1] =
'\0';
276 int num_filtered = 0;
304 MEM_mallocN(
sizeof(*filtered_tmp) *
size_t(num_files), __func__));
309 filtered_tmp[num_filtered++] = file;
331 const bool do_filter,
333 const bool hide_parent,
336 const bool filter_assets_only,
337 const char *filter_glob,
338 const char *filter_search)
Main runtime representation of an asset.
uint64_t BKE_idtype_idcode_to_idfilter(short idcode)
#define BLI_assert_msg(a, msg)
#define LISTBASE_FOREACH(type, var, list)
#define FILENAME_IS_CURRPAR(_n)
#define STRNCPY_RLEN(dst, src)
int char char int int int int BLI_strcmp_ignore_pad(const char *str1, const char *str2, char pad) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
char char * BLI_strncpy_ensure_pad(char *__restrict dst, const char *__restrict src, char pad, size_t dst_maxncpy) ATTR_NONNULL(1
int char * BLI_strcasestr(const char *s, const char *find) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
#define STRNCPY_UTF8(dst, src)
@ FILE_TYPE_BLENDER_BACKUP
#define FILE_MAX_LIBEXTRA
unsigned long long int uint64_t
void filelist_cache_clear(FileListEntryCache *cache, size_t new_size)
bool filelist_intern_entry_is_main_file(const FileListInternEntry *intern_entry)
bool filelist_islibrary(FileList *filelist, char *dir, char **r_group)
static bool is_filtered_file_relpath(const FileListInternEntry *file, const FileListFilter *filter)
void filelist_tag_needs_filtering(FileList *filelist)
bool is_filtered_asset_library(FileListInternEntry *file, const char *root, FileListFilter *filter)
bool is_filtered_asset(FileListInternEntry *file, FileListFilter *filter)
void filelist_setfilter_options(FileList *filelist, const bool do_filter, const bool hide_dot, const bool hide_parent, const uint64_t filter, const uint64_t filter_id, const bool filter_assets_only, const char *filter_glob, const char *filter_search)
bool is_filtered_main_assets(FileListInternEntry *file, const char *, FileListFilter *filter)
static AssetMetaData * filelist_file_internal_get_asset_data(const FileListInternEntry *file)
bool is_filtered_file(FileListInternEntry *file, const char *, FileListFilter *filter)
bool is_filtered_lib(FileListInternEntry *file, const char *root, FileListFilter *filter)
void prepare_filter_asset_library(const FileList *filelist, FileListFilter *filter)
bool is_filtered_main(FileListInternEntry *file, const char *, FileListFilter *filter)
static bool is_filtered_file_type(const FileListInternEntry *file, const FileListFilter *filter)
void filelist_filter(FileList *filelist)
static bool is_filtered_hidden(const char *filename, const FileListFilter *filter, const FileListInternEntry *file)
static bool is_filtered_file_name(const FileListInternEntry *file, const FileListFilter *filter)
static bool is_filtered_lib_type(FileListInternEntry *file, const char *, FileListFilter *filter)
bool filelist_needs_filtering(FileList *filelist)
static bool asset_tag_matches_filter(const char *filter_search, const AssetMetaData *asset_data)
static bool is_filtered_id_file_type(const FileListInternEntry *file, const short id_code, const char *name, const FileListFilter *filter)
#define FILEDIR_NBR_ENTRIES_UNSET
void * MEM_mallocN(size_t len, const char *str)
void MEM_freeN(void *vmemh)
static void update(bNodeTree *ntree)
User defined tag. Currently only used by assets, could be used more often at some point....
char filter_glob[FILE_MAXFILE]
eFileAttributes attributes
eFileSel_File_Types typeflag
blender::asset_system::AssetRepresentation * get_asset() const
FileListInternEntry ** filtered
void(* prepare_filter_fn)(const FileList *filelist, FileListFilter *filter)
bool(* filter_fn)(FileListInternEntry *file, const char *root, FileListFilter *filter)
FileListEntryCache * filelist_cache
FileListIntern filelist_intern
FileListFilter filter_data
blender::asset_system::AssetLibrary * asset_library