Preferences: add handler for loading factory preferences

Allows app-templates to define their own adjustments to preferences.
This matches `load_factory_startup_post`, use when loading preferences.
This commit is contained in:
2019-05-22 14:28:10 +10:00
parent fc0312f538
commit b79ff12e11
3 changed files with 13 additions and 3 deletions

View File

@@ -52,6 +52,7 @@ typedef enum {
BLI_CB_EVT_DEPSGRAPH_UPDATE_PRE, BLI_CB_EVT_DEPSGRAPH_UPDATE_PRE,
BLI_CB_EVT_DEPSGRAPH_UPDATE_POST, BLI_CB_EVT_DEPSGRAPH_UPDATE_POST,
BLI_CB_EVT_VERSION_UPDATE, BLI_CB_EVT_VERSION_UPDATE,
BLI_CB_EVT_LOAD_FACTORY_USERDEF_POST,
BLI_CB_EVT_LOAD_FACTORY_STARTUP_POST, BLI_CB_EVT_LOAD_FACTORY_STARTUP_POST,
BLI_CB_EVT_TOT, BLI_CB_EVT_TOT,
} eCbEvent; } eCbEvent;

View File

@@ -61,6 +61,7 @@ static PyStructSequence_Field app_cb_info_fields[] = {
{(char *)"depsgraph_update_pre", (char *)"on depsgraph update (pre)"}, {(char *)"depsgraph_update_pre", (char *)"on depsgraph update (pre)"},
{(char *)"depsgraph_update_post", (char *)"on depsgraph update (post)"}, {(char *)"depsgraph_update_post", (char *)"on depsgraph update (post)"},
{(char *)"version_update", (char *)"on ending the versioning code"}, {(char *)"version_update", (char *)"on ending the versioning code"},
{(char *)"load_factory_preferences_post", (char *)"on loading factory preferences (after)"},
{(char *)"load_factory_startup_post", (char *)"on loading factory startup (after)"}, {(char *)"load_factory_startup_post", (char *)"on loading factory startup (after)"},
/* sets the permanent tag */ /* sets the permanent tag */

View File

@@ -491,7 +491,7 @@ static void wm_file_read_post(bContext *C,
const bool is_startup_file, const bool is_startup_file,
const bool is_factory_startup, const bool is_factory_startup,
const bool use_data, const bool use_data,
const bool UNUSED(use_userdef), const bool use_userdef,
const bool reset_app_template) const bool reset_app_template)
{ {
bool addons_loaded = false; bool addons_loaded = false;
@@ -537,15 +537,23 @@ static void wm_file_read_post(bContext *C,
Main *bmain = CTX_data_main(C); Main *bmain = CTX_data_main(C);
if (use_data) { if (use_userdef) {
WM_operatortype_last_properties_clear_all(); if (is_factory_startup) {
BLI_callback_exec(bmain, NULL, BLI_CB_EVT_LOAD_FACTORY_USERDEF_POST);
}
}
if (use_data) {
/* important to do before NULL'ing the context */ /* important to do before NULL'ing the context */
BLI_callback_exec(bmain, NULL, BLI_CB_EVT_VERSION_UPDATE); BLI_callback_exec(bmain, NULL, BLI_CB_EVT_VERSION_UPDATE);
BLI_callback_exec(bmain, NULL, BLI_CB_EVT_LOAD_POST); BLI_callback_exec(bmain, NULL, BLI_CB_EVT_LOAD_POST);
if (is_factory_startup) { if (is_factory_startup) {
BLI_callback_exec(bmain, NULL, BLI_CB_EVT_LOAD_FACTORY_STARTUP_POST); BLI_callback_exec(bmain, NULL, BLI_CB_EVT_LOAD_FACTORY_STARTUP_POST);
} }
}
if (use_data) {
WM_operatortype_last_properties_clear_all();
/* After load post, so for example the driver namespace can be filled /* After load post, so for example the driver namespace can be filled
* before evaluating the depsgraph. */ * before evaluating the depsgraph. */