Blender V4.3
space_file.cc File Reference
#include <cstdio>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_utildefines.h"
#include "BKE_appdir.hh"
#include "BKE_context.hh"
#include "BKE_global.hh"
#include "BKE_lib_query.hh"
#include "BKE_main.hh"
#include "BKE_report.hh"
#include "BKE_screen.hh"
#include "RNA_access.hh"
#include "RNA_define.hh"
#include "RNA_enum_types.hh"
#include "WM_api.hh"
#include "WM_message.hh"
#include "WM_types.hh"
#include "ED_asset.hh"
#include "ED_asset_indexer.hh"
#include "ED_fileselect.hh"
#include "ED_screen.hh"
#include "ED_space_api.hh"
#include "IMB_thumbs.hh"
#include "UI_resources.hh"
#include "UI_view2d.hh"
#include "BLO_read_write.hh"
#include "file_indexer.hh"
#include "file_intern.hh"
#include "filelist.hh"
#include "fsmenu.h"

Go to the source code of this file.

Functions

static SpaceLinkfile_create (const ScrArea *, const Scene *)
 
static void file_free (SpaceLink *sl)
 
static void file_init (wmWindowManager *, ScrArea *area)
 
static void file_exit (wmWindowManager *wm, ScrArea *area)
 
static SpaceLinkfile_duplicate (SpaceLink *sl)
 
static void file_refresh (const bContext *C, ScrArea *area)
 
void file_on_reload_callback_register (SpaceFile *sfile, onReloadFn callback, onReloadFnData custom_data)
 
static void file_on_reload_callback_call (SpaceFile *sfile)
 
static void file_reset_filelist_showing_main_data (ScrArea *area, SpaceFile *sfile)
 
static void file_listener (const wmSpaceTypeListenerParams *listener_params)
 
static void file_main_region_init (wmWindowManager *wm, ARegion *region)
 
static void file_main_region_listener (const wmRegionListenerParams *listener_params)
 
static void file_main_region_message_subscribe (const wmRegionMessageSubscribeParams *params)
 
bool file_main_region_needs_refresh_before_draw (SpaceFile *sfile)
 
static void file_main_region_draw (const bContext *C, ARegion *region)
 
static void file_operatortypes ()
 
static void file_keymap (wmKeyConfig *keyconf)
 
static bool file_ui_region_poll (const RegionPollParams *params)
 
static bool file_tool_props_region_poll (const RegionPollParams *params)
 
static bool file_execution_region_poll (const RegionPollParams *params)
 
static void file_tools_region_init (wmWindowManager *wm, ARegion *region)
 
static void file_tools_region_draw (const bContext *C, ARegion *region)
 
static void file_tools_region_listener (const wmRegionListenerParams *listener_params)
 
static void file_tool_props_region_listener (const wmRegionListenerParams *listener_params)
 
static void file_header_region_init (wmWindowManager *wm, ARegion *region)
 
static void file_header_region_draw (const bContext *C, ARegion *region)
 
static void file_ui_region_init (wmWindowManager *wm, ARegion *region)
 
static void file_ui_region_draw (const bContext *C, ARegion *region)
 
static void file_execution_region_init (wmWindowManager *wm, ARegion *region)
 
static void file_execution_region_draw (const bContext *C, ARegion *region)
 
static void file_ui_region_listener (const wmRegionListenerParams *listener_params)
 
static bool filepath_drop_poll (bContext *C, wmDrag *drag, const wmEvent *)
 
static void filepath_drop_copy (bContext *, wmDrag *drag, wmDropBox *drop)
 
static void file_dropboxes ()
 
static int file_space_subtype_get (ScrArea *area)
 
static void file_space_subtype_set (ScrArea *area, int value)
 
static void file_space_subtype_item_extend (bContext *, EnumPropertyItem **item, int *totitem)
 
static blender::StringRefNull file_space_name_get (const ScrArea *area)
 
static int file_space_icon_get (const ScrArea *area)
 
static void file_id_remap (ScrArea *area, SpaceLink *sl, const blender::bke::id::IDRemapper &)
 
static void file_foreach_id (SpaceLink *space_link, LibraryForeachIDData *data)
 
static void file_space_blend_read_data (BlendDataReader *reader, SpaceLink *sl)
 
static void file_space_blend_read_after_liblink (BlendLibReader *, ID *, SpaceLink *sl)
 
static void file_space_blend_write (BlendWriter *writer, SpaceLink *sl)
 
void ED_spacetype_file ()
 
void ED_file_init ()
 
void ED_file_exit ()
 
void ED_file_read_bookmarks ()
 

Function Documentation

◆ ED_file_exit()

void ED_file_exit ( )

Definition at line 1031 of file space_file.cc.

References filelist_free_icons(), fsmenu_free(), and G.

Referenced by WM_exit_ex().

◆ ED_file_init()

void ED_file_init ( )

Definition at line 1025 of file space_file.cc.

References ED_file_read_bookmarks(), and IMB_thumb_makedirs().

Referenced by WM_init().

◆ ED_file_read_bookmarks()

◆ ED_spacetype_file()

void ED_spacetype_file ( )

Definition at line 924 of file space_file.cc.

References BKE_spacetype_register(), BLI_addhead(), ARegionType::draw, ED_KEYMAP_HEADER, ED_KEYMAP_UI, ED_KEYMAP_VIEW2D, file_context(), file_create(), file_dropboxes(), file_duplicate(), file_execute_region_panels_register(), file_execution_region_draw(), file_execution_region_init(), file_execution_region_poll(), file_exit(), file_external_operations_menu_register(), file_foreach_id(), file_free(), file_header_region_draw(), file_header_region_init(), file_id_remap(), file_init(), file_keymap(), file_listener(), file_main_region_draw(), file_main_region_init(), file_main_region_listener(), file_main_region_message_subscribe(), file_operatortypes(), file_refresh(), file_space_blend_read_after_liblink(), file_space_blend_read_data(), file_space_blend_write(), file_space_icon_get(), file_space_name_get(), file_space_subtype_get(), file_space_subtype_item_extend(), file_space_subtype_set(), file_tool_props_region_listener(), file_tool_props_region_panels_register(), file_tool_props_region_poll(), file_tools_region_draw(), file_tools_region_init(), file_tools_region_listener(), file_tools_region_panels_register(), file_ui_region_draw(), file_ui_region_init(), file_ui_region_listener(), file_ui_region_poll(), HEADERY, ARegionType::init, ARegionType::keymapflag, ARegionType::listener, MEM_callocN, ARegionType::message_subscribe, ARegionType::poll, ARegionType::prefsizex, ARegionType::prefsizey, ARegionType::regionid, RGN_TYPE_EXECUTE, RGN_TYPE_HEADER, RGN_TYPE_TOOL_PROPS, RGN_TYPE_TOOLS, RGN_TYPE_UI, RGN_TYPE_WINDOW, SPACE_FILE, and STRNCPY.

Referenced by ED_spacetypes_init().

◆ file_create()

◆ file_dropboxes()

static void file_dropboxes ( )
static

◆ file_duplicate()

◆ file_execution_region_draw()

static void file_execution_region_draw ( const bContext * C,
ARegion * region )
static

Definition at line 766 of file space_file.cc.

References ED_region_panels().

Referenced by ED_spacetype_file().

◆ file_execution_region_init()

static void file_execution_region_init ( wmWindowManager * wm,
ARegion * region )
static

◆ file_execution_region_poll()

static bool file_execution_region_poll ( const RegionPollParams * params)
static

Definition at line 660 of file space_file.cc.

References SpaceFile::op, and params.

Referenced by ED_spacetype_file().

◆ file_exit()

static void file_exit ( wmWindowManager * wm,
ScrArea * area )
static

◆ file_foreach_id()

static void file_foreach_id ( SpaceLink * space_link,
LibraryForeachIDData * data )
static

◆ file_free()

◆ file_header_region_draw()

static void file_header_region_draw ( const bContext * C,
ARegion * region )
static

Definition at line 728 of file space_file.cc.

References ED_region_header().

Referenced by ED_spacetype_file().

◆ file_header_region_init()

static void file_header_region_init ( wmWindowManager * wm,
ARegion * region )
static

◆ file_id_remap()

static void file_id_remap ( ScrArea * area,
SpaceLink * sl,
const blender::bke::id::IDRemapper &  )
static

Definition at line 850 of file space_file.cc.

References file_reset_filelist_showing_main_data().

Referenced by ED_spacetype_file().

◆ file_init()

◆ file_keymap()

static void file_keymap ( wmKeyConfig * keyconf)
static

Definition at line 635 of file space_file.cc.

References RGN_TYPE_WINDOW, SPACE_FILE, and WM_keymap_ensure().

Referenced by ED_spacetype_file().

◆ file_listener()

◆ file_main_region_draw()

◆ file_main_region_init()

◆ file_main_region_listener()

◆ file_main_region_message_subscribe()

◆ file_main_region_needs_refresh_before_draw()

bool file_main_region_needs_refresh_before_draw ( SpaceFile * sfile)

◆ file_on_reload_callback_call()

static void file_on_reload_callback_call ( SpaceFile * sfile)
static

◆ file_on_reload_callback_register()

void file_on_reload_callback_register ( SpaceFile * sfile,
onReloadFn callback,
onReloadFnData custom_data )

Register an on-reload callback function. Note that there can only be one such function at a time; registering a new one will overwrite the previous one.

Definition at line 327 of file space_file.cc.

References callback, SpaceFile_Runtime::on_reload, SpaceFile_Runtime::on_reload_custom_data, and SpaceFile::runtime.

Referenced by ED_fileselect_activate_by_id(), and ED_fileselect_activate_by_relpath().

◆ file_operatortypes()

◆ file_refresh()

static void file_refresh ( const bContext * C,
ScrArea * area )
static

Definition at line 199 of file space_file.cc.

References FileAssetSelectParams::asset_catalog_visibility, FileAssetSelectParams::asset_library_ref, BKE_area_find_region_type(), SpaceFile::bookmarknr, FileAssetSelectParams::catalog_id, CTX_wm_manager(), CTX_wm_space_file(), CTX_wm_window(), FileLayout::dirty, ED_area_tag_redraw(), ED_fileselect_ensure_active_params(), ED_fileselect_get_asset_params(), ED_fileselect_is_asset_browser(), ED_fsmenu_get(), ED_region_visibility_change_update(), FILE_ASSETS_ONLY, FILE_FILTER, FILE_HIDE_DOT, FILE_HIDE_TOOL_PROPS, FILE_IMGDISPLAY, file_indexer_noop, file_params_renamefile_activate(), FILE_SORT_INVERT, FILE_TAG_REBUILD_MAIN_FILES, filelist_cache_previews_set(), filelist_clear_from_reset_tag(), filelist_filter(), filelist_needs_force_reset(), filelist_needs_reading(), filelist_needs_reset_on_main_changes(), filelist_new(), filelist_pending(), filelist_readjob_start(), filelist_readjob_stop(), filelist_set_asset_catalog_filter_options(), filelist_setdir(), filelist_setfilter_options(), filelist_setindexer(), filelist_setlibrary(), filelist_setrecursion(), filelist_setsorting(), filelist_settype(), filelist_sort(), filelist_tag_force_reset_mainfiles(), SpaceFile::files, fileselect_refresh_params(), ARegion::flag, View2D::flag, folder_history_list_ensure_for_active_browse_mode(), FS_CATEGORY_BOOKMARKS, FS_CATEGORY_RECENT, FS_CATEGORY_SYSTEM, FS_CATEGORY_SYSTEM_BOOKMARKS, fsmenu_get_active_indices(), SpaceFile_Runtime::is_blendfile_status_set, SpaceFile::layout, NC_SPACE, ND_SPACE_FILE_LIST, params, SpaceFile::previews_timer, SpaceFile::recentnr, RGN_FLAG_HIDDEN, RGN_TYPE_TOOL_PROPS, SpaceFile::runtime, SpaceFile::system_bookmarknr, SpaceFile::systemnr, SpaceFile::tags, USER_EXPERIMENTAL_TEST, ARegion::v2d, V2D_IS_INIT, and WM_event_timer_remove_notifier().

Referenced by ED_spacetype_file(), and file_main_region_draw().

◆ file_reset_filelist_showing_main_data()

static void file_reset_filelist_showing_main_data ( ScrArea * area,
SpaceFile * sfile )
static

◆ file_space_blend_read_after_liblink()

static void file_space_blend_read_after_liblink ( BlendLibReader * ,
ID * ,
SpaceLink * sl )
static

Definition at line 902 of file space_file.cc.

References FILE_TAG_REBUILD_MAIN_FILES, and SpaceFile::tags.

Referenced by ED_spacetype_file().

◆ file_space_blend_read_data()

◆ file_space_blend_write()

static void file_space_blend_write ( BlendWriter * writer,
SpaceLink * sl )
static

Definition at line 911 of file space_file.cc.

References SpaceFile::asset_params, BLO_write_struct, and SpaceFile::params.

Referenced by ED_spacetype_file().

◆ file_space_icon_get()

static int file_space_icon_get ( const ScrArea * area)
static

◆ file_space_name_get()

static blender::StringRefNull file_space_name_get ( const ScrArea * area)
static

◆ file_space_subtype_get()

static int file_space_subtype_get ( ScrArea * area)
static

Definition at line 813 of file space_file.cc.

References SpaceFile::browse_mode.

Referenced by ED_spacetype_file().

◆ file_space_subtype_item_extend()

static void file_space_subtype_item_extend ( bContext * ,
EnumPropertyItem ** item,
int * totitem )
static

Definition at line 829 of file space_file.cc.

References RNA_enum_items_add(), and rna_enum_space_file_browse_mode_items.

Referenced by ED_spacetype_file().

◆ file_space_subtype_set()

static void file_space_subtype_set ( ScrArea * area,
int value )
static

Definition at line 819 of file space_file.cc.

References SpaceFile::browse_mode, and LISTBASE_FOREACH.

Referenced by ED_spacetype_file().

◆ file_tool_props_region_listener()

static void file_tool_props_region_listener ( const wmRegionListenerParams * listener_params)
static

◆ file_tool_props_region_poll()

static bool file_tool_props_region_poll ( const RegionPollParams * params)
static

Definition at line 654 of file space_file.cc.

References SpaceFile::browse_mode, FILE_BROWSE_MODE_ASSETS, SpaceFile::op, and params.

Referenced by ED_spacetype_file().

◆ file_tools_region_draw()

static void file_tools_region_draw ( const bContext * C,
ARegion * region )
static

Definition at line 678 of file space_file.cc.

References ED_region_panels().

Referenced by ED_spacetype_file().

◆ file_tools_region_init()

◆ file_tools_region_listener()

static void file_tools_region_listener ( const wmRegionListenerParams * listener_params)
static

◆ file_ui_region_draw()

static void file_ui_region_draw ( const bContext * C,
ARegion * region )
static

Definition at line 749 of file space_file.cc.

References ED_region_panels().

Referenced by ED_spacetype_file().

◆ file_ui_region_init()

◆ file_ui_region_listener()

static void file_ui_region_listener ( const wmRegionListenerParams * listener_params)
static

◆ file_ui_region_poll()

static bool file_ui_region_poll ( const RegionPollParams * params)
static

Definition at line 647 of file space_file.cc.

References SpaceFile::browse_mode, FILE_BROWSE_MODE_ASSETS, and params.

Referenced by ED_spacetype_file().

◆ filepath_drop_copy()

static void filepath_drop_copy ( bContext * ,
wmDrag * drag,
wmDropBox * drop )
static

Definition at line 799 of file space_file.cc.

References wmDropBox::ptr, RNA_string_set(), and WM_drag_get_single_path().

Referenced by file_dropboxes().

◆ filepath_drop_poll()

static bool filepath_drop_poll ( bContext * C,
wmDrag * drag,
const wmEvent *  )
static

Definition at line 788 of file space_file.cc.

References CTX_wm_space_file(), wmDrag::type, and WM_DRAG_PATH.

Referenced by file_dropboxes().