Blender V4.3
wm_files.hh File Reference
#include "WM_types.hh"

Go to the source code of this file.

Classes

struct  wmHomeFileRead_Params
 

Functions

void wm_history_file_read ()
 
void wm_homefile_read_ex (bContext *C, const wmHomeFileRead_Params *params_homefile, ReportList *reports, wmFileReadPost_Params **r_params_file_read_post)
 
void wm_homefile_read (bContext *C, const wmHomeFileRead_Params *params_homefile, ReportList *reports)
 
void wm_homefile_read_post (bContext *C, const wmFileReadPost_Params *params_file_read_post)
 
void wm_file_read_report (Main *bmain, wmWindow *win)
 
void wm_close_file_dialog (bContext *C, wmGenericCallback *post_action)
 
bool wm_operator_close_file_dialog_if_needed (bContext *C, wmOperator *op, wmGenericCallbackFn post_action_fn)
 
bool wm_file_or_session_data_has_unsaved_changes (const Main *bmain, const wmWindowManager *wm)
 
void wm_save_file_overwrite_dialog (bContext *C, wmOperator *op)
 
void WM_OT_save_homefile (wmOperatorType *ot)
 
void WM_OT_save_userpref (wmOperatorType *ot)
 
void WM_OT_read_userpref (wmOperatorType *ot)
 
void WM_OT_read_factory_userpref (wmOperatorType *ot)
 
void WM_OT_read_history (wmOperatorType *ot)
 
void WM_OT_read_homefile (wmOperatorType *ot)
 
void WM_OT_read_factory_settings (wmOperatorType *ot)
 
void WM_OT_open_mainfile (wmOperatorType *ot)
 
void WM_OT_revert_mainfile (wmOperatorType *ot)
 
void WM_OT_recover_last_session (wmOperatorType *ot)
 
void WM_OT_recover_auto_save (wmOperatorType *ot)
 
void WM_OT_save_as_mainfile (wmOperatorType *ot)
 
void WM_OT_save_mainfile (wmOperatorType *ot)
 
void WM_OT_clear_recent_files (wmOperatorType *ot)
 
void WM_OT_link (wmOperatorType *ot)
 
void WM_OT_append (wmOperatorType *ot)
 
void WM_OT_lib_relocate (wmOperatorType *ot)
 
void WM_OT_lib_reload (wmOperatorType *ot)
 

Function Documentation

◆ wm_close_file_dialog()

◆ wm_file_or_session_data_has_unsaved_changes()

bool wm_file_or_session_data_has_unsaved_changes ( const Main * bmain,
const wmWindowManager * wm )

Check if there is data that would be lost when closing the current file without saving.

Definition at line 181 of file wm_files.cc.

References AS_asset_library_has_any_unsaved_catalogs(), ED_image_should_save_modified(), and wmWindowManager::file_saved.

Referenced by wm_operator_close_file_dialog_if_needed(), wm_quit_with_optional_confirmation_prompt(), and wm_read_factory_settings_invoke().

◆ wm_file_read_report()

void wm_file_read_report ( Main * bmain,
wmWindow * win )

◆ wm_history_file_read()

◆ wm_homefile_read()

void wm_homefile_read ( bContext * C,
const wmHomeFileRead_Params * params_homefile,
ReportList * reports )

Definition at line 1567 of file wm_files.cc.

References wm_homefile_read_ex().

Referenced by wm_homefile_read_exec(), and wm_userpref_read_exec().

◆ wm_homefile_read_ex()

void wm_homefile_read_ex ( bContext * C,
const wmHomeFileRead_Params * params_homefile,
ReportList * reports,
wmFileReadPost_Params ** r_params_file_read_post )

Called on startup, (context entirely filled with NULLs) or called for 'New File' both startup.blend and userpref.blend are checked.

Parameters
r_params_file_read_postSupport postponed initialization, needed for initial startup when only some sub-systems have been initialized. When non-null, wm_file_read_post doesn't run, instead it's arguments are stored in this return argument. The caller is responsible for calling wm_homefile_read_post with this return argument.

Definition at line 1193 of file wm_files.cc.

References app_template, wmHomeFileRead_Params::app_template_override, BKE_appdir_app_template_id_search(), BKE_appdir_folder_id(), BKE_blender_userdef_app_template_data_set_and_free(), BKE_blender_userdef_data_set_and_free(), BKE_blendfile_read(), BKE_blendfile_read_from_memory(), BKE_blendfile_read_make_empty(), BKE_blendfile_read_setup_readfile(), BKE_blendfile_userdef_from_defaults(), BKE_blendfile_userdef_read(), BKE_reportf(), BLENDER_STARTUP_FILE, BLENDER_USER_CONFIG, BLENDER_USERPREF_FILE, BLI_access(), BLI_assert, BLI_exists(), BLI_path_join, BLO_READ_SKIP_DATA, BLO_READ_SKIP_USERDEF, BPY_run_string_eval(), CLOG_INFO, CTX_data_main(), CTX_py_init_get(), CTX_wm_window_set(), datatoc_startup_blend, datatoc_startup_blend_size, FILE_MAX, Main::filepath, wmHomeFileRead_Params::filepath_startup_override, G, G_FLAG_SCRIPT_AUTOEXEC, G_FLAG_SCRIPT_OVERRIDE_PREF, G_MAIN, BlendFileReadWMSetupData::is_factory_startup, wmHomeFileRead_Params::is_first_time, BlendFileReadParams::is_startup, LISTBASE_FOREACH, LOG, MEM_mallocN, params, BlendFileReadReport::reports, RPT_ERROR, RPT_WARNING, SET_FLAG_FROM_TEST, STREQ, STRNCPY, wmFileReadPost_Params::use_data, wmHomeFileRead_Params::use_data, wmHomeFileRead_Params::use_empty_data, wmHomeFileRead_Params::use_factory_settings, wmHomeFileRead_Params::use_factory_settings_app_template_only, wmHomeFileRead_Params::use_userdef, USER_SCRIPT_AUTOEXEC_DISABLE, Main::wm, WM_check(), wm_file_read_pre(), wm_file_read_setup_wm_finalize(), wm_file_read_setup_wm_init(), wm_homefile_read_post(), wm_init_userdef(), and wm_read_callback_pre_wrapper().

Referenced by wm_homefile_read(), and WM_init().

◆ wm_homefile_read_post()

void wm_homefile_read_post ( bContext * C,
const wmFileReadPost_Params * params_file_read_post )

Special case, support deferred execution of wm_file_read_post, Needed when loading for the first time to workaround order of initialization bug, see #89046.

Definition at line 1574 of file wm_files.cc.

References wmFileReadPost_Params::is_alloc, MEM_freeN(), wmFileReadPost_Params::success, wmFileReadPost_Params::use_data, wm_file_read_post(), and wm_read_callback_post_wrapper().

Referenced by wm_homefile_read_ex(), and WM_init().

◆ wm_operator_close_file_dialog_if_needed()

bool wm_operator_close_file_dialog_if_needed ( bContext * C,
wmOperator * op,
wmGenericCallbackFn post_action_fn )

◆ WM_OT_append()

◆ WM_OT_clear_recent_files()

◆ WM_OT_lib_reload()

◆ WM_OT_lib_relocate()

◆ WM_OT_link()

◆ WM_OT_open_mainfile()

◆ WM_OT_read_factory_settings()

◆ WM_OT_read_factory_userpref()

◆ WM_OT_read_history()

◆ WM_OT_read_homefile()

◆ WM_OT_read_userpref()

◆ WM_OT_recover_auto_save()

◆ WM_OT_recover_last_session()

◆ WM_OT_revert_mainfile()

◆ WM_OT_save_as_mainfile()

◆ WM_OT_save_homefile()

◆ WM_OT_save_mainfile()

◆ WM_OT_save_userpref()

◆ wm_save_file_overwrite_dialog()

void wm_save_file_overwrite_dialog ( bContext * C,
wmOperator * op )

Confirmation dialog when user is about to save the current blend file, and it was previously created by a newer version of Blender.

Important to ask confirmation, as this is a very common scenario of data loss.

Definition at line 4428 of file wm_files.cc.

References block_create_save_file_overwrite_dialog(), callback, CTX_wm_screen(), free_post_file_close_action(), IDP_CopyProperty(), wmOperator::properties, save_file_overwrite_dialog_name, UI_popup_block_invoke(), UI_popup_block_name_exists(), and wm_free_operator_properties_callback().

Referenced by wm_save_mainfile_invoke().