Blender V4.3
ED_fileselect.hh File Reference
#include "DNA_uuid_types.h"

Go to the source code of this file.

Classes

struct  FileAttributeColumn
 
struct  FileLayout
 
struct  FileSelection
 
struct  FSMenuEntry
 

Namespaces

namespace  blender
 
namespace  blender::asset_system
 

Macros

#define FILE_LAYOUT_HOR   1
 
#define FILE_LAYOUT_VER   2
 

Enumerations

enum  FileAttributeColumnType {
  COLUMN_NONE = -1 , COLUMN_NAME = 0 , COLUMN_DATETIME , COLUMN_SIZE ,
  ATTRIBUTE_COLUMN_MAX
}
 
enum  FSMenuCategory {
  FS_CATEGORY_SYSTEM , FS_CATEGORY_SYSTEM_BOOKMARKS , FS_CATEGORY_BOOKMARKS , FS_CATEGORY_RECENT ,
  FS_CATEGORY_OTHER
}
 
enum  FSMenuInsert {
  FS_INSERT_SORTED = (1 << 0) , FS_INSERT_SAVE = (1 << 1) , FS_INSERT_FIRST = (1 << 2) , FS_INSERT_LAST = (1 << 3) ,
  FS_INSERT_NO_VALIDATE = (1 << 4)
}
 

Functions

FileSelectParamsED_fileselect_ensure_active_params (SpaceFile *sfile)
 
FileSelectParamsED_fileselect_get_active_params (const SpaceFile *sfile)
 
FileSelectParamsED_fileselect_get_file_params (const SpaceFile *sfile)
 
FileAssetSelectParamsED_fileselect_get_asset_params (const SpaceFile *sfile)
 
bool ED_fileselect_is_local_asset_library (const SpaceFile *sfile)
 
void ED_fileselect_set_params_from_userdef (SpaceFile *sfile)
 
void ED_fileselect_params_to_userdef (SpaceFile *sfile, const int temp_win_size[2], bool is_maximized)
 
void ED_fileselect_init_layout (SpaceFile *sfile, ARegion *region)
 
FileLayoutED_fileselect_get_layout (SpaceFile *sfile, ARegion *region)
 
int ED_fileselect_layout_numfiles (FileLayout *layout, ARegion *region)
 
int ED_fileselect_layout_offset (FileLayout *layout, int x, int y)
 
FileSelection ED_fileselect_layout_offset_rect (FileLayout *layout, const rcti *rect)
 
void ED_fileselect_layout_maskrect (const FileLayout *layout, const View2D *v2d, rcti *r_rect)
 
bool ED_fileselect_layout_is_inside_pt (const FileLayout *layout, const View2D *v2d, int x, int y)
 
bool ED_fileselect_layout_isect_rect (const FileLayout *layout, const View2D *v2d, const rcti *rect, rcti *r_dst)
 
void ED_fileselect_layout_tilepos (const FileLayout *layout, int tile, int *x, int *y)
 
void ED_operatormacros_file ()
 
void ED_fileselect_clear (wmWindowManager *wm, SpaceFile *sfile)
 
void ED_fileselect_exit (wmWindowManager *wm, SpaceFile *sfile)
 
bool ED_fileselect_is_file_browser (const SpaceFile *sfile)
 
bool ED_fileselect_is_asset_browser (const SpaceFile *sfile)
 
blender::asset_system::AssetLibraryED_fileselect_active_asset_library_get (const SpaceFile *sfile)
 
IDED_fileselect_active_asset_get (const SpaceFile *sfile)
 
void ED_fileselect_activate_asset_catalog (const SpaceFile *sfile, bUUID catalog_id)
 
int ED_fileselect_asset_import_method_get (const SpaceFile *sfile, const FileDirEntry *file)
 
void ED_fileselect_activate_by_id (SpaceFile *sfile, ID *asset_id, bool deferred)
 
void ED_fileselect_deselect_all (SpaceFile *sfile)
 
void ED_fileselect_activate_by_relpath (SpaceFile *sfile, const char *relative_path)
 
void ED_fileselect_window_params_get (const wmWindow *win, int r_win_size[2], bool *r_is_maximized)
 
ScrAreaED_fileselect_handler_area_find (const wmWindow *win, const wmOperator *file_operator)
 
ScrAreaED_fileselect_handler_area_find_any_with_op (const wmWindow *win)
 
void ED_fileselect_ensure_default_filepath (bContext *C, wmOperator *op, const char *extension)
 
int ED_path_extension_type (const char *path)
 
int ED_file_extension_icon (const char *path)
 
int ED_file_icon (const FileDirEntry *file)
 
void ED_file_read_bookmarks ()
 
void ED_file_change_dir_ex (bContext *C, ScrArea *area)
 
void ED_file_change_dir (bContext *C)
 
void ED_file_path_button (bScreen *screen, const SpaceFile *sfile, FileSelectParams *params, uiBlock *block)
 
FSMenuED_fsmenu_get ()
 
FSMenuEntryED_fsmenu_get_category (FSMenu *fsmenu, FSMenuCategory category)
 
void ED_fsmenu_set_category (FSMenu *fsmenu, FSMenuCategory category, FSMenuEntry *fsm_head)
 
int ED_fsmenu_get_nentries (FSMenu *fsmenu, FSMenuCategory category)
 
FSMenuEntryED_fsmenu_get_entry (FSMenu *fsmenu, FSMenuCategory category, int idx)
 
char * ED_fsmenu_entry_get_path (FSMenuEntry *fsentry)
 
void ED_fsmenu_entry_set_path (FSMenuEntry *fsentry, const char *path)
 
char * ED_fsmenu_entry_get_name (FSMenuEntry *fsentry)
 
void ED_fsmenu_entry_set_name (FSMenuEntry *fsentry, const char *name)
 
int ED_fsmenu_entry_get_icon (FSMenuEntry *fsentry)
 
void ED_fsmenu_entry_set_icon (FSMenuEntry *fsentry, int icon)
 

Macro Definition Documentation

◆ FILE_LAYOUT_HOR

◆ FILE_LAYOUT_VER

Enumeration Type Documentation

◆ FileAttributeColumnType

Enumerator
COLUMN_NONE 
COLUMN_NAME 
COLUMN_DATETIME 
COLUMN_SIZE 
ATTRIBUTE_COLUMN_MAX 

Definition at line 37 of file ED_fileselect.hh.

◆ FSMenuCategory

Enumerator
FS_CATEGORY_SYSTEM 
FS_CATEGORY_SYSTEM_BOOKMARKS 
FS_CATEGORY_BOOKMARKS 
FS_CATEGORY_RECENT 
FS_CATEGORY_OTHER 

For internal use, a list of known paths that are used to match paths to icons and names.

Definition at line 231 of file ED_fileselect.hh.

◆ FSMenuInsert

Enumerator
FS_INSERT_SORTED 
FS_INSERT_SAVE 
FS_INSERT_FIRST 

moves the item to the front of the list when its not already there

FS_INSERT_LAST 

just append to preserve delivered order

FS_INSERT_NO_VALIDATE 

Do not validate the link when inserted.

Definition at line 240 of file ED_fileselect.hh.

Function Documentation

◆ ED_file_change_dir()

◆ ED_file_change_dir_ex()

void ED_file_change_dir_ex ( bContext * C,
ScrArea * area )

Support updating the directory even when this isn't the active space needed so RNA properties update function isn't context sensitive, see #70255.

Definition at line 1148 of file filesel.cc.

References CTX_wm_manager(), ED_fileselect_clear(), ED_fileselect_get_active_params(), file_draw_check_ex(), filelist_dir(), filelist_is_dir(), filelist_setdir(), SpaceFile::files, folderlist_clear_next(), folderlist_free(), folderlist_pushdir(), SpaceFile::folders_next, SpaceFile::folders_prev, params, SPACE_FILE, STRNCPY, and UNLIKELY.

Referenced by ED_file_change_dir().

◆ ED_file_extension_icon()

◆ ED_file_icon()

int ED_file_icon ( const FileDirEntry * file)

◆ ED_file_path_button()

◆ ED_file_read_bookmarks()

◆ ED_fileselect_activate_asset_catalog()

void ED_fileselect_activate_asset_catalog ( const SpaceFile * sfile,
bUUID catalog_id )

◆ ED_fileselect_activate_by_id()

void ED_fileselect_activate_by_id ( SpaceFile * sfile,
ID * asset_id,
bool deferred )

◆ ED_fileselect_activate_by_relpath()

◆ ED_fileselect_active_asset_get()

ID * ED_fileselect_active_asset_get ( const SpaceFile * sfile)

◆ ED_fileselect_active_asset_library_get()

◆ ED_fileselect_asset_import_method_get()

int ED_fileselect_asset_import_method_get ( const SpaceFile * sfile,
const FileDirEntry * file )

Resolve this space's eFileAssetImportMethod to the eAssetImportMethod (note the different type) to be used for the actual import of a specific asset.

  • If the asset system dictates a certain import method, this will be returned.
  • If the Asset Browser is set to follow the Preferences (FILE_ASSET_IMPORT_FOLLOW_PREFS), the asset system determines the import method (which is the default from the Preferences). -1 is returned if the asset system doesn't specify a method (e.g. because the asset library doesn't come from the Preferences).
  • Otherwise, the Asset Browser determines (possibly overrides) the import method.
Returns
-1 on error, for example when FILE_ASSET_IMPORT_FOLLOW_PREFS was requested but the active asset library reference couldn't be found in the preferences.

Definition at line 512 of file filesel.cc.

References ASSET_IMPORT_APPEND, ASSET_IMPORT_APPEND_REUSE, ASSET_IMPORT_LINK, BLI_assert, BLI_assert_unreachable, ED_fileselect_get_asset_params(), ED_fileselect_is_asset_browser(), FILE_ASSET_IMPORT_APPEND, FILE_ASSET_IMPORT_APPEND_REUSE, FILE_ASSET_IMPORT_FOLLOW_PREFS, FILE_ASSET_IMPORT_LINK, and params.

Referenced by file_but_enable_drag().

◆ ED_fileselect_clear()

◆ ED_fileselect_deselect_all()

void ED_fileselect_deselect_all ( SpaceFile * sfile)

◆ ED_fileselect_ensure_active_params()

◆ ED_fileselect_ensure_default_filepath()

void ED_fileselect_ensure_default_filepath ( bContext * C,
wmOperator * op,
const char * extension )

If filepath property is not set on the operator, sets it to the blend file path (or untitled if file is not saved yet) with the given extension.

Definition at line 1466 of file filesel.cc.

References BKE_main_blendfile_path(), BLI_path_extension_replace(), CTX_data_main(), DATA_, FILE_MAX, wmOperator::ptr, RNA_string_set(), RNA_struct_property_is_set_ex(), and STRNCPY.

Referenced by sequencer_export_subtitles_invoke().

◆ ED_fileselect_exit()

◆ ED_fileselect_get_active_params()

FileSelectParams * ED_fileselect_get_active_params ( const SpaceFile * sfile)

Get the file select parameters for the active browse mode.

Definition at line 380 of file filesel.cc.

References SpaceFile::asset_params, BLI_assert_msg, SpaceFile::browse_mode, FILE_BROWSE_MODE_ASSETS, FILE_BROWSE_MODE_FILES, and SpaceFile::params.

Referenced by bookmark_add_exec(), bookmark_select_exec(), ED_file_change_dir_ex(), ED_fileselect_activate_by_id(), ED_fileselect_activate_by_relpath(), ED_fileselect_active_asset_get(), ED_fileselect_clear(), ED_fileselect_init_layout(), ED_fileselect_params_to_userdef(), file_box_select_modal(), file_column_sort_ui_context_invoke(), file_context(), file_delete_poll(), file_directory_enter_handle(), file_directory_new_exec(), file_draw_check_exists(), file_draw_list(), file_draw_tooltip_custom_func(), file_duplicate(), file_edit_directory_path_exec(), file_execute(), file_expand_directory(), file_filename_enter_handle(), file_filenum_exec(), file_filenum_poll(), file_hidedot_exec(), file_highlight_set(), file_listener(), file_next_exec(), file_operator_to_sfile(), file_os_operations_menu_draw(), file_os_operations_menu_poll(), file_panel_execution_buttons_draw(), file_params_invoke_rename_postscroll(), file_params_rename_end(), file_parent_exec(), file_previous_exec(), file_rename_exec(), file_rename_state_activate(), file_select(), file_select_all_exec(), file_select_do(), file_select_exec(), file_sfile_filepath_set(), file_sfile_to_operator_ex(), file_smoothscroll_invoke(), file_start_filter_exec(), file_view_selected_exec(), file_walk_select_invoke(), file_walk_select_selection_set(), fileselect_file_set(), folderlist_clear_next(), renamebutton_cb(), and wm_context_member_from_ptr().

◆ ED_fileselect_get_asset_params()

◆ ED_fileselect_get_file_params()

FileSelectParams * ED_fileselect_get_file_params ( const SpaceFile * sfile)

Definition at line 398 of file filesel.cc.

References SpaceFile::browse_mode, FILE_BROWSE_MODE_FILES, and SpaceFile::params.

◆ ED_fileselect_get_layout()

◆ ED_fileselect_handler_area_find()

ScrArea * ED_fileselect_handler_area_find ( const wmWindow * win,
const wmOperator * file_operator )

Return the File Browser area in which file_operator is active.

Definition at line 1431 of file filesel.cc.

References ED_screen_areas_iter, SpaceFile::op, SPACE_FILE, and WM_window_get_active_screen().

Referenced by WM_event_add_fileselect(), and WM_event_remove_handlers().

◆ ED_fileselect_handler_area_find_any_with_op()

ScrArea * ED_fileselect_handler_area_find_any_with_op ( const wmWindow * win)

Check if there is any area in win that acts as a modal File Browser (SpaceFile.op is set) and return it.

Definition at line 1448 of file filesel.cc.

References ED_screen_areas_iter, SpaceFile::op, SPACE_FILE, and WM_window_get_active_screen().

Referenced by wm_event_find_fileselect_root_window_from_context().

◆ ED_fileselect_init_layout()

◆ ED_fileselect_is_asset_browser()

◆ ED_fileselect_is_file_browser()

bool ED_fileselect_is_file_browser ( const SpaceFile * sfile)

◆ ED_fileselect_is_local_asset_library()

bool ED_fileselect_is_local_asset_library ( const SpaceFile * sfile)

◆ ED_fileselect_layout_is_inside_pt()

bool ED_fileselect_layout_is_inside_pt ( const FileLayout * layout,
const View2D * v2d,
int x,
int y )

◆ ED_fileselect_layout_isect_rect()

bool ED_fileselect_layout_isect_rect ( const FileLayout * layout,
const View2D * v2d,
const rcti * rect,
rcti * r_dst )

Definition at line 864 of file filesel.cc.

References BLI_rcti_isect(), and ED_fileselect_layout_maskrect().

Referenced by file_box_select_exec(), and file_box_select_modal().

◆ ED_fileselect_layout_maskrect()

void ED_fileselect_layout_maskrect ( const FileLayout * layout,
const View2D * v2d,
rcti * r_rect )

Get the currently visible bounds of the layout in screen space. Matches View2D.mask minus the top column-header row.

Definition at line 851 of file filesel.cc.

References View2D::mask, FileLayout::offset_top, and rcti::ymax.

Referenced by ED_fileselect_layout_is_inside_pt(), ED_fileselect_layout_isect_rect(), and file_main_region_draw().

◆ ED_fileselect_layout_numfiles()

◆ ED_fileselect_layout_offset()

◆ ED_fileselect_layout_offset_rect()

◆ ED_fileselect_layout_tilepos()

◆ ED_fileselect_params_to_userdef()

void ED_fileselect_params_to_userdef ( SpaceFile * sfile,
const int temp_win_size[2],
bool is_maximized )

Update the user-preference data for the file space. In fact, this also contains some non-FileSelectParams data, but we can safely ignore this.

Parameters
temp_win_sizeIf the browser was opened in a temporary window, pass its size here so we can store that in the preferences. Otherwise NULL.

Definition at line 688 of file filesel.cc.

References UserDef_FileSpaceData::details_flags, UserDef_FileSpaceData::display_type, ED_fileselect_get_active_params(), file_select_use_default_display_type(), file_select_use_default_sort_type(), FILE_SORT_INVERT, UserDef_FileSpaceData::filter_id, UserDef_FileSpaceData::flag, params, PARAMS_FLAGS_REMEMBERED, UserDef_FileSpaceData::sort_type, UserDef_FileSpaceData::temp_win_sizex, UserDef_FileSpaceData::temp_win_sizey, and UserDef_FileSpaceData::thumbnail_size.

Referenced by ED_fileselect_exit(), and wm_handler_fileselect_do().

◆ ED_fileselect_set_params_from_userdef()

◆ ED_fileselect_window_params_get()

void ED_fileselect_window_params_get ( const wmWindow * win,
int r_win_size[2],
bool * r_is_maximized )

◆ ED_fsmenu_entry_get_icon()

int ED_fsmenu_entry_get_icon ( FSMenuEntry * fsentry)

Definition at line 147 of file fsmenu.cc.

References FSMenuEntry::icon.

◆ ED_fsmenu_entry_get_name()

char * ED_fsmenu_entry_get_name ( FSMenuEntry * fsentry)

Definition at line 174 of file fsmenu.cc.

References fsmenu_entry_generate_name(), and FSMenuEntry::name.

◆ ED_fsmenu_entry_get_path()

char * ED_fsmenu_entry_get_path ( FSMenuEntry * fsentry)

Definition at line 123 of file fsmenu.cc.

References FSMenuEntry::path.

◆ ED_fsmenu_entry_set_icon()

void ED_fsmenu_entry_set_icon ( FSMenuEntry * fsentry,
int icon )

Definition at line 152 of file fsmenu.cc.

References FSMenuEntry::icon.

Referenced by fsmenu_insert_entry().

◆ ED_fsmenu_entry_set_name()

◆ ED_fsmenu_entry_set_path()

void ED_fsmenu_entry_set_path ( FSMenuEntry * fsentry,
const char * path )

◆ ED_fsmenu_get()

◆ ED_fsmenu_get_category()

◆ ED_fsmenu_get_entry()

FSMenuEntry * ED_fsmenu_get_entry ( FSMenu * fsmenu,
FSMenuCategory category,
int idx )

Definition at line 110 of file fsmenu.cc.

References ED_fsmenu_get_category(), and FSMenuEntry::next.

Referenced by reset_recent_exec().

◆ ED_fsmenu_get_nentries()

int ED_fsmenu_get_nentries ( FSMenu * fsmenu,
FSMenuCategory category )

Definition at line 98 of file fsmenu.cc.

References count, ED_fsmenu_get_category(), and FSMenuEntry::next.

Referenced by bookmark_delete_exec(), and bookmark_move_exec().

◆ ED_fsmenu_set_category()

◆ ED_operatormacros_file()

void ED_operatormacros_file ( )

Definition at line 3309 of file file_ops.cc.

Referenced by ED_spacemacros_init().

◆ ED_path_extension_type()