Blender V5.0
ED_fileselect.hh File Reference
#include <string>
#include "BLI_vector.hh"
#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) }

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)
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_clear_main_assets (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)
blender::Vector< std::string > ED_fileselect_selected_files_full_paths (const SpaceFile *sfile)
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 41 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 242 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

Definition at line 251 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 )

◆ ED_file_extension_icon()

◆ ED_file_icon()

int ED_file_icon ( const FileDirEntry * file)

Definition at line 397 of file filelist.cc.

References filelist_geticon_file_type_ex(), and FileDirEntry::preview_icon_id.

◆ 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 FileDirEntry::asset, ASSET_IMPORT_APPEND, ASSET_IMPORT_APPEND_REUSE, ASSET_IMPORT_LINK, ASSET_IMPORT_PACK, 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, FILE_ASSET_IMPORT_PACK, and params.

Referenced by file_but_enable_drag().

◆ ED_fileselect_clear()

◆ ED_fileselect_clear_main_assets()

◆ 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 1470 of file filesel.cc.

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

Referenced by blender::ed::vse::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 379 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_clear_main_assets(), 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_external_operation_exec(), 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 397 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 1435 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 1452 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 863 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 850 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)

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 691 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::thumbnail_size, and U.

Referenced by ED_fileselect_exit(), and wm_handler_fileselect_do().

◆ ED_fileselect_selected_files_full_paths()

◆ 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 148 of file fsmenu.cc.

References FSMenuEntry::icon.

◆ ED_fsmenu_entry_get_name()

char * ED_fsmenu_entry_get_name ( FSMenuEntry * fsentry)

Definition at line 175 of file fsmenu.cc.

References fsmenu_entry_generate_name(), FSMenuEntry::name, and name.

◆ ED_fsmenu_entry_get_path()

char * ED_fsmenu_entry_get_path ( FSMenuEntry * fsentry)

Definition at line 124 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 153 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 111 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 99 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 3405 of file file_ops.cc.

Referenced by ED_spacemacros_init().

◆ ED_path_extension_type()