Blender V5.0
filelist_filter.cc File Reference
#include "AS_asset_representation.hh"
#include "BLI_fnmatch.h"
#include "BLI_listbase.h"
#include "BLI_path_utils.hh"
#include "BLI_string.h"
#include "BLI_string_utf8.h"
#include "BKE_idtype.hh"
#include "../file_intern.hh"
#include "../filelist.hh"
#include "filelist_intern.hh"

Go to the source code of this file.

Functions

static bool is_filtered_hidden (const char *filename, const FileListFilter *filter, const FileListInternEntry *file)
static bool is_filtered_file_relpath (const FileListInternEntry *file, const FileListFilter *filter)
static bool is_filtered_file_name (const FileListInternEntry *file, const FileListFilter *filter)
static bool is_filtered_file_type (const FileListInternEntry *file, const FileListFilter *filter)
bool is_filtered_file (FileListInternEntry *file, const char *, FileListFilter *filter)
static bool is_filtered_id_file_type (const FileListInternEntry *file, const short id_code, const char *name, const FileListFilter *filter)
static AssetMetaDatafilelist_file_internal_get_asset_data (const FileListInternEntry *file)
void prepare_filter_asset_library (const FileList *filelist, FileListFilter *filter)
static bool asset_tag_matches_filter (const char *filter_search, const AssetMetaData *asset_data)
bool is_filtered_asset (FileListInternEntry *file, FileListFilter *filter)
static bool is_filtered_lib_type (FileListInternEntry *file, const char *, FileListFilter *filter)
bool is_filtered_lib (FileListInternEntry *file, const char *root, FileListFilter *filter)
bool is_filtered_main (FileListInternEntry *file, const char *, FileListFilter *filter)
bool is_filtered_main_assets (FileListInternEntry *file, const char *, FileListFilter *filter)
bool is_filtered_asset_library (FileListInternEntry *file, const char *root, FileListFilter *filter)
void filelist_tag_needs_filtering (FileList *filelist)
bool filelist_needs_filtering (FileList *filelist)
void filelist_filter (FileList *filelist)
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)

Function Documentation

◆ asset_tag_matches_filter()

bool asset_tag_matches_filter ( const char * filter_search,
const AssetMetaData * asset_data )
static

Return whether at least one tag matches the search filter. Tags are searched as "entire words", so instead of searching for "tag" in the filter string, this function searches for " tag ". Assumes the search filter starts and ends with a space.

Here the tags on the asset are written in set notation:

asset_tag_matches_filter(" some tags ", {"some", "blue"}) -> true asset_tag_matches_filter(" some tags ", {"som", "tag"}) -> false asset_tag_matches_filter(" some tags ", {}) -> false

Definition at line 188 of file filelist_filter.cc.

References BLI_strcasestr(), LISTBASE_FOREACH, and AssetMetaData::tags.

Referenced by is_filtered_asset().

◆ filelist_file_internal_get_asset_data()

AssetMetaData * filelist_file_internal_get_asset_data ( const FileListInternEntry * file)
static

Get the asset metadata of a file, if it represents an asset. This may either be of a local ID (ID in the current Main) or read from an external asset library.

Definition at line 155 of file filelist_filter.cc.

References FileListInternEntry::get_asset().

Referenced by is_filtered_asset().

◆ filelist_filter()

◆ filelist_needs_filtering()

bool filelist_needs_filtering ( FileList * filelist)

Definition at line 269 of file filelist_filter.cc.

References FL_NEED_FILTERING, and FileList::flags.

Referenced by file_refresh().

◆ filelist_setfilter_options()

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 )

◆ filelist_tag_needs_filtering()

◆ is_filtered_asset()

◆ is_filtered_asset_library()

bool is_filtered_asset_library ( FileListInternEntry * file,
const char * root,
FileListFilter * filter )

◆ is_filtered_file()

bool is_filtered_file ( FileListInternEntry * file,
const char * ,
FileListFilter * filter )
Returns
true when the file should be in the result set, false if it should be filtered out.

Definition at line 119 of file filelist_filter.cc.

References filter, is_filtered_file_name(), is_filtered_file_relpath(), and is_filtered_file_type().

Referenced by filelist_settype().

◆ is_filtered_file_name()

bool is_filtered_file_name ( const FileListInternEntry * file,
const FileListFilter * filter )
static

Apply the filter string as matching pattern on file name.

Returns
true when the file should be in the result set, false if it should be filtered out.

Definition at line 75 of file filelist_filter.cc.

References filter, and FileListInternEntry::name.

Referenced by is_filtered_file().

◆ is_filtered_file_relpath()

bool is_filtered_file_relpath ( const FileListInternEntry * file,
const FileListFilter * filter )
static

Apply the filter string as file path matching pattern.

Returns
true when the file should be in the result set, false if it should be filtered out.

Definition at line 61 of file filelist_filter.cc.

References filter, and FileListInternEntry::relpath.

Referenced by is_filtered_file(), and is_filtered_lib().

◆ is_filtered_file_type()

bool is_filtered_file_type ( const FileListInternEntry * file,
const FileListFilter * filter )
static

◆ is_filtered_hidden()

bool is_filtered_hidden ( const char * filename,
const FileListFilter * filter,
const FileListInternEntry * file )
static

◆ is_filtered_id_file_type()

bool is_filtered_id_file_type ( const FileListInternEntry * file,
const short id_code,
const char * name,
const FileListFilter * filter )
static

◆ is_filtered_lib()

bool is_filtered_lib ( FileListInternEntry * file,
const char * root,
FileListFilter * filter )

Definition at line 236 of file filelist_filter.cc.

References filter, is_filtered_file_relpath(), and is_filtered_lib_type().

Referenced by filelist_settype().

◆ is_filtered_lib_type()

◆ is_filtered_main()

bool is_filtered_main ( FileListInternEntry * file,
const char * ,
FileListFilter * filter )

Definition at line 241 of file filelist_filter.cc.

References filter, is_filtered_hidden(), and FileListInternEntry::relpath.

Referenced by filelist_settype().

◆ is_filtered_main_assets()

bool is_filtered_main_assets ( FileListInternEntry * file,
const char * ,
FileListFilter * filter )

◆ prepare_filter_asset_library()

void prepare_filter_asset_library ( const FileList * filelist,
FileListFilter * filter )

Definition at line 163 of file filelist_filter.cc.

References FileList::asset_library, BLI_assert_msg, and filter.

Referenced by filelist_settype().