Blender V5.0
filelist.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2007 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include <cstddef>
12#include <cstdint>
13
14#include "DNA_space_types.h"
15
17struct bContext;
18struct BlendHandle;
19struct FileIndexerType;
20struct FileList;
21struct FileSelection;
22struct ID;
23struct ImBuf;
24struct bUUID;
25struct wmWindowManager;
26namespace blender::asset_system {
27class AssetLibrary;
29} // namespace blender::asset_system
30
31struct FileDirEntry;
32
33using FileUID = uint32_t;
34
40
46
47void filelist_setsorting(FileList *filelist, short sort, bool invert_sort);
48void filelist_sort(FileList *filelist);
49
51 bool do_filter,
52 bool hide_dot,
53 bool hide_parent,
55 uint64_t filter_id,
56 bool filter_assets_only,
57 const char *filter_glob,
58 const char *filter_search);
64void filelist_setindexer(FileList *filelist, const FileIndexerType *indexer);
70 FileList *filelist,
72 const bUUID *catalog_id);
75void filelist_filter(FileList *filelist);
79void filelist_setlibrary(FileList *filelist, const AssetLibraryReference *asset_library_ref);
80
84 const FileDirEntry *file,
85 char r_filepath[/*FILE_MAX_LIBEXTRA*/ 1282]);
86bool filelist_file_is_preview_pending(const FileList *filelist, const FileDirEntry *file);
91ImBuf *filelist_get_preview_image(FileList *filelist, int index);
99int filelist_geticon_file_type(FileList *filelist, int index, bool is_main);
100
101FileList *filelist_new(short type);
102void filelist_settype(FileList *filelist, short type);
103void filelist_clear(FileList *filelist);
104void filelist_clear_ex(FileList *filelist,
105 bool do_asset_library,
106 bool do_cache,
107 bool do_selection);
113void filelist_free(FileList *filelist);
114
119const char *filelist_dir(const FileList *filelist);
120bool filelist_is_dir(const FileList *filelist, const char *path);
124void filelist_setdir(FileList *filelist, char dirpath[/*FILE_MAX_LIBEXTRA*/ 1282]);
125
132int filelist_files_ensure(FileList *filelist);
133int filelist_needs_reading(const FileList *filelist);
144FileDirEntry *filelist_file(FileList *filelist, int index);
145FileDirEntry *filelist_file_ex(FileList *filelist, int index, bool use_request);
146
151int filelist_file_find_path(FileList *filelist, const char *filename);
156int filelist_file_find_id(const FileList *filelist, const ID *id);
164ID *filelist_entry_get_id(const FileList *filelist, int index);
166 const FileList *filelist, const int index);
171const char *filelist_entry_get_relpath(const FileList *filelist, int index);
173void filelist_uid_unset(FileUID *r_uid);
174void filelist_file_cache_slidingwindow_set(FileList *filelist, size_t window_size);
178bool filelist_file_cache_block(FileList *filelist, int index);
179
180bool filelist_needs_force_reset(const FileList *filelist);
181void filelist_tag_force_reset(FileList *filelist);
184bool filelist_pending(const FileList *filelist);
186bool filelist_is_ready(const FileList *filelist);
187
188unsigned int filelist_entry_select_set(const FileList *filelist,
189 const FileDirEntry *entry,
192 FileCheckType check);
194 int index,
197 FileCheckType check);
199 FileSelection *sel,
202 FileCheckType check);
204 FileDirEntry *entry,
205 FileCheckType check);
207 int index,
208 FileCheckType check);
209bool filelist_entry_is_selected(FileList *filelist, int index);
216 FileCheckType check);
217
218void filelist_setrecursion(FileList *filelist, int recursion_level);
219
221
222BlendHandle *filelist_lib(FileList *filelist);
226bool filelist_islibrary(FileList *filelist, char *dir, char **r_group);
227void filelist_freelib(FileList *filelist);
228
234
236void filelist_readjob_blocking_run(FileList *filelist, int space_notifier, const bContext *C);
237
239void filelist_readjob_start(FileList *filelist, int space_notifier, const bContext *C);
242
244void filelist_cache_previews_set(FileList *filelist, bool use_previews);
eFileSel_Params_AssetCatalogVisibility
eDirEntry_SelectFlag
#define C
Definition RandGen.cpp:29
unsigned long long int uint64_t
static DBVT_INLINE btDbvtNode * sort(btDbvtNode *n, btDbvtNode *&r)
Definition btDbvt.cpp:418
int filelist_geticon_file_type(FileList *filelist, int index, bool is_main)
Definition filelist.cc:390
void filelist_set_asset_catalog_filter_options(FileList *filelist, eFileSel_Params_AssetCatalogVisibility catalog_visibility, const bUUID *catalog_id)
void filelist_freelib(FileList *filelist)
Definition filelist.cc:1032
void filelist_tag_force_reset(FileList *filelist)
Definition filelist.cc:1135
bool filelist_file_cache_block(FileList *filelist, int index)
Definition filelist.cc:1440
int filelist_files_num_entries(FileList *filelist)
Definition filelist.cc:1045
void filelist_file_get_full_path(const FileList *filelist, const FileDirEntry *file, char r_filepath[1282])
bool filelist_islibrary(FileList *filelist, char *dir, char **r_group)
Definition filelist.cc:2043
const char * filelist_dir(const FileList *filelist)
Definition filelist.cc:1095
BlendHandle * filelist_lib(FileList *filelist)
Definition filelist.cc:1040
void filelist_tag_needs_filtering(FileList *filelist)
FileDirEntry * filelist_file_ex(FileList *filelist, int index, bool use_request)
Definition filelist.cc:1241
ImBuf * filelist_get_preview_image(FileList *filelist, int index)
Definition filelist.cc:230
void filelist_readjob_start(FileList *filelist, int space_notifier, const bContext *C)
Definition filelist.cc:3346
blender::asset_system::AssetLibrary * filelist_asset_library(FileList *filelist)
Definition filelist.cc:1027
bool filelist_needs_force_reset(const FileList *filelist)
Definition filelist.cc:1130
void filelist_readjob_blocking_run(FileList *filelist, int space_notifier, const bContext *C)
Definition filelist.cc:3351
bool filelist_file_is_preview_pending(const FileList *filelist, const FileDirEntry *file)
Definition filelist.cc:215
void filelist_setrecursion(FileList *filelist, int recursion_level)
Definition filelist.cc:1122
void filelist_clear_from_reset_tag(FileList *filelist)
Definition filelist.cc:988
bool filelist_pending(const FileList *filelist)
Definition filelist.cc:1158
void filelist_setdir(FileList *filelist, char dirpath[1282])
bool filelist_cache_previews_running(FileList *filelist)
Definition filelist.cc:1739
void filelist_entry_select_index_set(FileList *filelist, int index, FileSelType select, eDirEntry_SelectFlag flag, FileCheckType check)
Definition filelist.cc:1959
void filelist_free(FileList *filelist)
Definition filelist.cc:1002
void filelist_entry_parent_select_set(FileList *filelist, FileSelType select, eDirEntry_SelectFlag flag, FileCheckType check)
Definition filelist.cc:2033
void filelist_setlibrary(FileList *filelist, const AssetLibraryReference *asset_library_ref)
Definition filelist.cc:166
void filelist_setfilter_options(FileList *filelist, bool do_filter, bool hide_dot, bool hide_parent, uint64_t filter, uint64_t filter_id, bool filter_assets_only, const char *filter_glob, const char *filter_search)
uint32_t FileUID
Definition filelist.hh:33
bool filelist_cache_previews_done(FileList *filelist)
Definition filelist.cc:1746
void filelist_clear(FileList *filelist)
Definition filelist.cc:983
void filelist_free_icons()
Definition filelist.cc:191
void filelist_clear_ex(FileList *filelist, bool do_asset_library, bool do_cache, bool do_selection)
Definition filelist.cc:919
const char * filelist_entry_get_relpath(const FileList *filelist, int index)
Definition filelist.cc:1350
void filelist_tag_reload_asset_library(FileList *filelist)
Definition filelist.cc:1148
ImBuf * filelist_geticon_special_file_image_ex(const FileDirEntry *file)
Definition filelist.cc:251
ID * filelist_file_get_id(const FileDirEntry *file)
Definition filelist.cc:1345
bool filelist_cache_previews_update(FileList *filelist)
Definition filelist.cc:1681
int filelist_file_find_path(FileList *filelist, const char *filename)
Definition filelist.cc:1290
FileSelType
Definition filelist.hh:35
@ FILE_SEL_REMOVE
Definition filelist.hh:36
@ FILE_SEL_ADD
Definition filelist.hh:37
@ FILE_SEL_TOGGLE
Definition filelist.hh:38
void filelist_settype(FileList *filelist, short type)
Definition filelist.cc:858
FileList * filelist_new(short type)
Definition filelist.cc:845
int filelist_file_find_id(const FileList *filelist, const ID *id)
Definition filelist.cc:1310
bool filelist_uid_is_set(const FileUID uid)
Definition filelist.cc:1366
void filelist_readjob_stop(FileList *filelist, wmWindowManager *wm)
Definition filelist.cc:3356
void filelist_init_icons()
ID * filelist_entry_get_id(const FileList *filelist, int index)
Definition filelist.cc:1332
int filelist_needs_reading(const FileList *filelist)
Definition filelist.cc:1904
void filelist_file_cache_slidingwindow_set(FileList *filelist, size_t window_size)
Definition filelist.cc:1378
FileCheckType
Definition filelist.hh:41
@ CHECK_FILES
Definition filelist.hh:43
@ CHECK_DIRS
Definition filelist.hh:42
@ CHECK_ALL
Definition filelist.hh:44
void filelist_entries_select_index_range_set(FileList *filelist, FileSelection *sel, FileSelType select, eDirEntry_SelectFlag flag, FileCheckType check)
Definition filelist.cc:1972
void filelist_setsorting(FileList *filelist, short sort, bool invert_sort)
int filelist_readjob_running(FileList *filelist, wmWindowManager *wm)
Definition filelist.cc:3361
ImBuf * filelist_file_get_preview_image(const FileDirEntry *file)
Definition filelist.cc:237
void filelist_filter(FileList *filelist)
void filelist_tag_force_reset_mainfiles(FileList *filelist)
Definition filelist.cc:1140
bool filelist_is_dir(const FileList *filelist, const char *path)
Definition filelist.cc:1100
bool filelist_needs_reset_on_main_changes(const FileList *filelist)
Definition filelist.cc:1163
int filelist_files_ensure(FileList *filelist)
Definition filelist.cc:1168
void filelist_sort(FileList *filelist)
void filelist_setindexer(FileList *filelist, const FileIndexerType *indexer)
Definition filelist.cc:118
bool filelist_entry_is_selected(FileList *filelist, int index)
Definition filelist.cc:2020
FileDirEntry * filelist_file(FileList *filelist, int index)
Definition filelist.cc:1285
bool filelist_is_ready(const FileList *filelist)
Definition filelist.cc:1153
eDirEntry_SelectFlag filelist_entry_select_index_get(FileList *filelist, int index, FileCheckType check)
Definition filelist.cc:2007
bool filelist_needs_filtering(FileList *filelist)
blender::asset_system::AssetRepresentation * filelist_entry_get_asset_representation(const FileList *filelist, const int index)
Definition filelist.cc:1338
eDirEntry_SelectFlag filelist_entry_select_get(FileList *filelist, FileDirEntry *entry, FileCheckType check)
Definition filelist.cc:1989
ImBuf * filelist_geticon_special_file_image(FileList *filelist, int index)
Definition filelist.cc:270
void filelist_cache_previews_set(FileList *filelist, bool use_previews)
Definition filelist.cc:1656
void filelist_uid_unset(FileUID *r_uid)
Definition filelist.cc:1373
unsigned int filelist_entry_select_set(const FileList *filelist, const FileDirEntry *entry, FileSelType select, const eDirEntry_SelectFlag flag, FileCheckType check)
Definition filelist.cc:1910
#define filter
#define select(A, B, C)
Definition DNA_ID.h:414
Universally Unique Identifier according to RFC4122.
uint8_t flag
Definition wm_window.cc:145