diff options
author | Campbell Barton <ideasman42@gmail.com> | 2020-10-02 16:23:57 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-10-03 00:25:36 +0300 |
commit | e255040c7797a282cb0ea614e3f95c6a59cd0298 (patch) | |
tree | 74288668c0795403f7a44ff6e53588ef7568d611 | |
parent | 15a9579a03f1ca65df477a1a39dbaef572ff3e9f (diff) |
Cleanup: run UserDef versioning from readfile.c
Now versioning UserDef is run in readfile.c,
as is done for other Blender data.
Previously versioning was mixed with other run-time initialization,
so it needed to be called later by the window manager.
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 6 | ||||
-rw-r--r-- | source/blender/editors/interface/interface.c | 5 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_intern.h | 1 | ||||
-rw-r--r-- | source/blender/editors/interface/resources.c | 15 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_files.c | 20 |
5 files changed, 21 insertions, 26 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index c9e279f7588..2ea4206bab3 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -6883,15 +6883,15 @@ static void link_global(FileData *fd, BlendFileData *bfd) /** \name Versioning * \{ */ -/* initialize userdef with non-UI dependency stuff */ -/* other initializers (such as theme color defaults) go to resources.c */ -static void do_versions_userdef(FileData *fd, BlendFileData *bfd) +static void do_versions_userdef(FileData *UNUSED(fd), BlendFileData *bfd) { UserDef *user = bfd->user; if (user == NULL) { return; } + + BLO_version_defaults_userpref_blend(user); } static void do_versions(FileData *fd, Library *lib, Main *main) diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index d93d80bb4ef..85097a80b53 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -7061,11 +7061,8 @@ void UI_init(void) /* after reading userdef file */ void UI_init_userdef(void) { - /* fix saved themes */ - init_userdef_do_versions(); + /* Initialize UI variables from values set in the preferences. */ uiStyleInit(); - - BLO_sanitize_experimental_features_userpref_blend(&U); } void UI_reinit_font(void) diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index 7ac6ca4577e..194726b1347 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -993,7 +993,6 @@ void icon_draw_rect_input( float x, float y, int w, int h, float alpha, short event_type, short event_value); /* resources.c */ -void init_userdef_do_versions(void); void ui_resources_init(void); void ui_resources_free(void); diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 1601d9914a3..ec6f99f167d 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -1499,18 +1499,3 @@ void UI_make_axis_color(const uchar src_col[3], uchar dst_col[3], const char axi break; } } - -/* patching UserDef struct and Themes */ -void init_userdef_do_versions(void) -{ - BLO_version_defaults_userpref_blend(&U); - - if (STREQ(U.tempdir, "/")) { - BKE_tempdir_system_init(U.tempdir); - } - - /* Not versioning, just avoid errors. */ -#ifndef WITH_CYCLES - BKE_addon_remove_safe(&U.addons, "cycles"); -#endif -} diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index 6e3a5ccb339..3f58ba9e5a0 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -69,6 +69,7 @@ #include "DNA_windowmanager_types.h" #include "DNA_workspace_types.h" +#include "BKE_addon.h" #include "BKE_appdir.h" #include "BKE_autoexec.h" #include "BKE_blender.h" @@ -388,10 +389,18 @@ static void wm_window_match_do(bContext *C, /** \name Preferences Initialization & Versioning * \{ */ -/* in case UserDef was read, we re-initialize all, and do versioning */ +/** + * In case #UserDef was read, re-initialize values that depend on it. + */ static void wm_init_userdef(Main *bmain) { - /* versioning is here */ + /* Not versioning, just avoid errors. */ +#ifndef WITH_CYCLES + BKE_addon_remove_safe(&U.addons, "cycles"); +#else + UNUSED_VARS(BKE_addon_remove_safe); +#endif + UI_init_userdef(); /* needed so loading a file from the command line respects user-pref T26156. */ @@ -406,11 +415,16 @@ static void wm_init_userdef(Main *bmain) MEM_CacheLimiter_set_maximum(((size_t)U.memcachelimit) * 1024 * 1024); BKE_sound_init(bmain); - /* update tempdir from user preferences */ + if (STREQ(U.tempdir, "/")) { + BKE_tempdir_system_init(U.tempdir); + } + /* Update `U.tempdir` from user preferences. */ BKE_tempdir_init(U.tempdir); /* Update tablet API preference. */ WM_init_tablet_api(); + + BLO_sanitize_experimental_features_userpref_blend(&U); } /* return codes */ |