Blender V5.0
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_id_linked_relocate (wmOperatorType *ot)
void WM_OT_lib_relocate (wmOperatorType *ot)
void WM_OT_lib_reload (wmOperatorType *ot)
void WM_OT_set_working_color_space (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 187 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 1591 of file wm_files.cc.

References C, and 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 1218 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(), C, 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_FILE_NO_UI, G_FLAG_SCRIPT_AUTOEXEC, G_FLAG_SCRIPT_OVERRIDE_PREF, G_MAIN, wmFileReadPost_Params::is_alloc, BlendFileReadParams::is_factory_settings, BlendFileReadWMSetupData::is_factory_startup, wmFileReadPost_Params::is_factory_startup, wmFileReadPost_Params::is_first_time, wmHomeFileRead_Params::is_first_time, BlendFileReadParams::is_startup, wmFileReadPost_Params::is_startup_file, KEYCONF_INIT_DEFAULT, LISTBASE_FOREACH, LOG, MEM_mallocN(), params, BlendFileReadReport::reports, wmFileReadPost_Params::reset_app_template, RPT_ERROR, RPT_WARNING, SET_FLAG_FROM_TEST, BlendFileReadParams::skip_flags, STREQ, STRNCPY(), wmFileReadPost_Params::success, U, 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, wmFileReadPost_Params::use_userdef, 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 1598 of file wm_files.cc.

References C, 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()

◆ WM_OT_append()

◆ WM_OT_clear_recent_files()

◆ WM_OT_id_linked_relocate()

◆ WM_OT_lib_reload()

◆ WM_OT_lib_relocate()

◆ WM_OT_link()

◆ WM_OT_open_mainfile()

◆ WM_OT_read_factory_settings()

void WM_OT_read_factory_settings ( wmOperatorType * ot)

◆ WM_OT_read_factory_userpref()

void WM_OT_read_factory_userpref ( wmOperatorType * ot)

◆ WM_OT_read_history()

void WM_OT_read_history ( wmOperatorType * ot)

◆ WM_OT_read_homefile()

◆ WM_OT_read_userpref()

void WM_OT_read_userpref ( wmOperatorType * ot)

Definition at line 2756 of file wm_files.cc.

References ot, WM_operator_confirm(), and wm_userpref_read_exec().

Referenced by wm_operatortypes_register().

◆ WM_OT_recover_auto_save()

◆ WM_OT_recover_last_session()

◆ WM_OT_revert_mainfile()

◆ WM_OT_save_as_mainfile()

◆ WM_OT_save_homefile()

void WM_OT_save_homefile ( wmOperatorType * ot)

Definition at line 2600 of file wm_files.cc.

References ot, wm_homefile_write_exec(), and wm_homefile_write_invoke().

Referenced by wm_operatortypes_register().

◆ WM_OT_save_mainfile()

◆ WM_OT_save_userpref()

void WM_OT_save_userpref ( wmOperatorType * ot)

Definition at line 2629 of file wm_files.cc.

References ot, WM_operator_confirm(), and wm_userpref_write_exec().

Referenced by wm_operatortypes_register().

◆ WM_OT_set_working_color_space()

◆ 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 4574 of file wm_files.cc.

References block_create_save_file_overwrite_dialog(), C, CTX_wm_screen(), wmGenericCallback::exec, free_post_file_close_action(), wmGenericCallback::free_user_data, IDP_CopyProperty(), MEM_callocN(), wmOperator::properties, save_file_overwrite_dialog_name, UI_popup_block_invoke(), UI_popup_block_name_exists(), wmGenericCallback::user_data, and wm_free_operator_properties_callback().

Referenced by wm_save_mainfile_invoke().