Fix T67577: Add-on unregister can't access preferences on factory reset
This commit is contained in:
parent
d5a92b188b
commit
f18ed7ad89
Notes:
blender-bot
2023-02-14 08:42:54 +01:00
Referenced by commite69f70e11f
, Revert "Fix T67577: Add-on unregister can't access preferences on factory reset" Referenced by commiteba3aa1837
, Revert "Fix T67577: Add-on unregister can't access preferences on factory reset" Referenced by issue #77265, 2.83.0 Beta addons need to be re-enabled after switching File->New-> any choise other than "General" (2DAnimation, Sculpting, VFX, Video editing) Referenced by issue #67577, Error registering addons disabled by Load Factory Settings (from preferences window)
|
@ -516,9 +516,13 @@ static void wm_file_read_post(bContext *C,
|
|||
BPY_execute_string(
|
||||
C, (const char *[]){"bl_app_template_utils", NULL}, "bl_app_template_utils.reset()");
|
||||
}
|
||||
}
|
||||
|
||||
if (use_userdef) {
|
||||
/* sync addons, these may have changed from the defaults */
|
||||
BPY_execute_string(C, (const char *[]){"addon_utils", NULL}, "addon_utils.reset_all()");
|
||||
}
|
||||
|
||||
if (use_data) {
|
||||
BPY_python_reset(C);
|
||||
}
|
||||
|
@ -767,9 +771,9 @@ const char *WM_init_state_app_template_get(void)
|
|||
void wm_homefile_read(bContext *C,
|
||||
ReportList *reports,
|
||||
bool use_factory_settings,
|
||||
bool use_empty_data,
|
||||
bool use_data,
|
||||
bool use_userdef,
|
||||
const bool use_empty_data,
|
||||
const bool use_data,
|
||||
const bool use_userdef,
|
||||
const char *filepath_startup_override,
|
||||
const char *app_template_override,
|
||||
bool *r_is_factory_startup)
|
||||
|
@ -809,6 +813,20 @@ void wm_homefile_read(bContext *C,
|
|||
SET_FLAG_FROM_TEST(G.f, (U.flag & USER_SCRIPT_AUTOEXEC_DISABLE) == 0, G_FLAG_SCRIPT_AUTOEXEC);
|
||||
}
|
||||
|
||||
if (use_userdef) {
|
||||
#ifdef WITH_PYTHON
|
||||
/* This only runs once Blender has already started. */
|
||||
if (CTX_py_init_get(C)) {
|
||||
/* This is restored by 'wm_file_read_post', disable before loading any preferences
|
||||
* so an add-on can read their own preferences when un-registering, see T67577.
|
||||
*
|
||||
* Note that this would fit into a matching 'wm_file_read_pre' function,
|
||||
* but this gets complicated by blend files not always loading, call inline instead. */
|
||||
BPY_execute_string(C, (const char *[]){"addon_utils", NULL}, "addon_utils.disable_all()");
|
||||
}
|
||||
#endif /* WITH_PYTHON */
|
||||
}
|
||||
|
||||
if (use_data) {
|
||||
BKE_callback_exec_null(CTX_data_main(C), BKE_CB_EVT_LOAD_PRE);
|
||||
BLI_timer_on_file_load();
|
||||
|
|
|
@ -33,9 +33,9 @@ void wm_history_file_read(void);
|
|||
void wm_homefile_read(struct bContext *C,
|
||||
struct ReportList *reports,
|
||||
bool use_factory_settings,
|
||||
bool use_empty_data,
|
||||
bool use_data,
|
||||
bool use_userdef,
|
||||
const bool use_empty_data,
|
||||
const bool use_data,
|
||||
const bool use_userdef,
|
||||
const char *filepath_startup_override,
|
||||
const char *app_template_override,
|
||||
bool *r_is_factory_startup);
|
||||
|
|
Loading…
Reference in New Issue