Blender V4.5
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*/ 1090]);
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*/ 1090]);
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:1341
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:2002
void filelist_tag_force_reset(FileList *filelist)
Definition filelist.cc:2105
bool filelist_file_cache_block(FileList *filelist, int index)
Definition filelist.cc:2410
int filelist_files_num_entries(FileList *filelist)
Definition filelist.cc:2015
bool filelist_islibrary(FileList *filelist, char *dir, char **r_group)
Definition filelist.cc:3017
const char * filelist_dir(const FileList *filelist)
Definition filelist.cc:2065
BlendHandle * filelist_lib(FileList *filelist)
Definition filelist.cc:2010
void filelist_tag_needs_filtering(FileList *filelist)
Definition filelist.cc:945
FileDirEntry * filelist_file_ex(FileList *filelist, int index, bool use_request)
Definition filelist.cc:2211
ImBuf * filelist_get_preview_image(FileList *filelist, int index)
Definition filelist.cc:1178
void filelist_readjob_start(FileList *filelist, int space_notifier, const bContext *C)
Definition filelist.cc:4317
blender::asset_system::AssetLibrary * filelist_asset_library(FileList *filelist)
Definition filelist.cc:1997
bool filelist_needs_force_reset(const FileList *filelist)
Definition filelist.cc:2100
void filelist_readjob_blocking_run(FileList *filelist, int space_notifier, const bContext *C)
Definition filelist.cc:4322
bool filelist_file_is_preview_pending(const FileList *filelist, const FileDirEntry *file)
Definition filelist.cc:1163
void filelist_setrecursion(FileList *filelist, int recursion_level)
Definition filelist.cc:2092
void filelist_clear_from_reset_tag(FileList *filelist)
Definition filelist.cc:1958
bool filelist_pending(const FileList *filelist)
Definition filelist.cc:2128
bool filelist_cache_previews_running(FileList *filelist)
Definition filelist.cc:2709
void filelist_entry_select_index_set(FileList *filelist, int index, FileSelType select, eDirEntry_SelectFlag flag, FileCheckType check)
Definition filelist.cc:2933
void filelist_free(FileList *filelist)
Definition filelist.cc:1972
void filelist_entry_parent_select_set(FileList *filelist, FileSelType select, eDirEntry_SelectFlag flag, FileCheckType check)
Definition filelist.cc:3007
void filelist_setlibrary(FileList *filelist, const AssetLibraryReference *asset_library_ref)
Definition filelist.cc:1114
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)
Definition filelist.cc:1011
uint32_t FileUID
Definition filelist.hh:33
void filelist_setdir(FileList *filelist, char dirpath[1090])
bool filelist_cache_previews_done(FileList *filelist)
Definition filelist.cc:2716
void filelist_clear(FileList *filelist)
Definition filelist.cc:1953
void filelist_free_icons()
Definition filelist.cc:1139
void filelist_clear_ex(FileList *filelist, bool do_asset_library, bool do_cache, bool do_selection)
Definition filelist.cc:1889
const char * filelist_entry_get_relpath(const FileList *filelist, int index)
Definition filelist.cc:2320
void filelist_tag_reload_asset_library(FileList *filelist)
Definition filelist.cc:2118
ImBuf * filelist_geticon_special_file_image_ex(const FileDirEntry *file)
Definition filelist.cc:1199
ID * filelist_file_get_id(const FileDirEntry *file)
Definition filelist.cc:2315
bool filelist_cache_previews_update(FileList *filelist)
Definition filelist.cc:2651
int filelist_file_find_path(FileList *filelist, const char *filename)
Definition filelist.cc:2260
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:1828
FileList * filelist_new(short type)
Definition filelist.cc:1815
int filelist_file_find_id(const FileList *filelist, const ID *id)
Definition filelist.cc:2280
bool filelist_uid_is_set(const FileUID uid)
Definition filelist.cc:2336
void filelist_readjob_stop(FileList *filelist, wmWindowManager *wm)
Definition filelist.cc:4327
void filelist_init_icons()
ID * filelist_entry_get_id(const FileList *filelist, int index)
Definition filelist.cc:2302
int filelist_needs_reading(const FileList *filelist)
Definition filelist.cc:2878
void filelist_file_cache_slidingwindow_set(FileList *filelist, size_t window_size)
Definition filelist.cc:2348
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:2946
void filelist_setsorting(FileList *filelist, short sort, bool invert_sort)
Definition filelist.cc:685
void filelist_file_get_full_path(const FileList *filelist, const FileDirEntry *file, char r_filepath[1090])
int filelist_readjob_running(FileList *filelist, wmWindowManager *wm)
Definition filelist.cc:4332
ImBuf * filelist_file_get_preview_image(const FileDirEntry *file)
Definition filelist.cc:1185
void filelist_filter(FileList *filelist)
Definition filelist.cc:955
void filelist_tag_force_reset_mainfiles(FileList *filelist)
Definition filelist.cc:2110
bool filelist_is_dir(const FileList *filelist, const char *path)
Definition filelist.cc:2070
bool filelist_needs_reset_on_main_changes(const FileList *filelist)
Definition filelist.cc:2133
int filelist_files_ensure(FileList *filelist)
Definition filelist.cc:2138
void filelist_sort(FileList *filelist)
Definition filelist.cc:649
void filelist_setindexer(FileList *filelist, const FileIndexerType *indexer)
Definition filelist.cc:1066
bool filelist_entry_is_selected(FileList *filelist, int index)
Definition filelist.cc:2994
FileDirEntry * filelist_file(FileList *filelist, int index)
Definition filelist.cc:2255
bool filelist_is_ready(const FileList *filelist)
Definition filelist.cc:2123
eDirEntry_SelectFlag filelist_entry_select_index_get(FileList *filelist, int index, FileCheckType check)
Definition filelist.cc:2981
bool filelist_needs_filtering(FileList *filelist)
Definition filelist.cc:950
blender::asset_system::AssetRepresentation * filelist_entry_get_asset_representation(const FileList *filelist, const int index)
Definition filelist.cc:2308
eDirEntry_SelectFlag filelist_entry_select_get(FileList *filelist, FileDirEntry *entry, FileCheckType check)
Definition filelist.cc:2963
ImBuf * filelist_geticon_special_file_image(FileList *filelist, int index)
Definition filelist.cc:1218
void filelist_cache_previews_set(FileList *filelist, bool use_previews)
Definition filelist.cc:2626
void filelist_uid_unset(FileUID *r_uid)
Definition filelist.cc:2343
unsigned int filelist_entry_select_set(const FileList *filelist, const FileDirEntry *entry, FileSelType select, const eDirEntry_SelectFlag flag, FileCheckType check)
Definition filelist.cc:2884
#define select(A, B, C)
#define filter
Definition DNA_ID.h:404
Universally Unique Identifier according to RFC4122.
uint8_t flag
Definition wm_window.cc:139