Fix access to current preferences when version patching read preferences

The version patch for 0cf9794c7e was checking and setting a data name
using the macros for translation. These would access the current
preferences which can mismatch the ones currently being version patched.
See discussion in 0cf9794c7e for details.

Don't handle translation in this version patch, which is more of a
"nice-to-have" version patch, no functionality depends on it.
This commit is contained in:
Julian Eisel 2021-11-03 14:17:26 +01:00
parent f81190f85f
commit 0d8f1414a2
3 changed files with 9 additions and 5 deletions

View File

@ -29,8 +29,8 @@ extern "C" {
struct UserDef;
struct bUserAssetLibrary;
/** Name of the asset library added by default. */
#define BKE_PREFS_ASSET_LIBRARY_DEFAULT_NAME DATA_("User Library")
/** Name of the asset library added by default. Needs translation with `DATA_()` still. */
#define BKE_PREFS_ASSET_LIBRARY_DEFAULT_NAME N_("User Library")
struct bUserAssetLibrary *BKE_preferences_asset_library_add(struct UserDef *userdef,
const char *name,

View File

@ -121,7 +121,7 @@ void BKE_preferences_asset_library_default_add(UserDef *userdef)
}
bUserAssetLibrary *library = BKE_preferences_asset_library_add(
userdef, BKE_PREFS_ASSET_LIBRARY_DEFAULT_NAME, NULL);
userdef, DATA_(BKE_PREFS_ASSET_LIBRARY_DEFAULT_NAME), NULL);
/* Add new "Default" library under '[doc_path]/Blender/Assets'. */
BLI_path_join(

View File

@ -927,9 +927,13 @@ void blo_do_versions_userdef(UserDef *userdef)
}
if (!USER_VERSION_ATLEAST(300, 40)) {
/* Rename the default asset library from "Default" to "User Library" */
/* Rename the default asset library from "Default" to "User Library". This isn't bullet proof
* since it doesn't handle translations and ignores user changes. But this was an alpha build
* (experimental) feature and the name is just for display in the UI anyway. So it doesn't have
* to work perfectly at all. */
LISTBASE_FOREACH (bUserAssetLibrary *, asset_library, &userdef->asset_libraries) {
if (STREQ(asset_library->name, DATA_("Default"))) {
/* Ignores translations, since that would depend on the current preferences (global `U`). */
if (STREQ(asset_library->name, "Default")) {
BKE_preferences_asset_library_name_set(
userdef, asset_library, BKE_PREFS_ASSET_LIBRARY_DEFAULT_NAME);
}