diff options
author | Sybren A. Stüvel <sybren@blender.org> | 2021-11-19 18:39:28 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@blender.org> | 2021-11-19 18:39:28 +0300 |
commit | 9e3a913b35df9f9519d48e18223192a34ab8f22a (patch) | |
tree | cbf17875f91dfff850ad6ad95b5f4170b4820e10 /source/blender/blenkernel | |
parent | ec71054a9b7bf0d2218fa230855fc9af2e71bcc2 (diff) | |
parent | 1a1ddcb5e22b2e6ad4d7506c709ca93ca64096d3 (diff) |
Merge remote-tracking branch 'origin/blender-v3.0-release'
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_preferences.h | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/preferences.c | 13 |
2 files changed, 16 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_preferences.h b/source/blender/blenkernel/BKE_preferences.h index fd4d13f4125..e9cb024f117 100644 --- a/source/blender/blenkernel/BKE_preferences.h +++ b/source/blender/blenkernel/BKE_preferences.h @@ -42,6 +42,9 @@ void BKE_preferences_asset_library_name_set(struct UserDef *userdef, struct bUserAssetLibrary *library, const char *name) ATTR_NONNULL(); +void BKE_preferences_asset_library_path_set(struct bUserAssetLibrary *library, const char *path) + ATTR_NONNULL(); + struct bUserAssetLibrary *BKE_preferences_asset_library_find_from_index( const struct UserDef *userdef, int index) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT; struct bUserAssetLibrary *BKE_preferences_asset_library_find_from_name( diff --git a/source/blender/blenkernel/intern/preferences.c b/source/blender/blenkernel/intern/preferences.c index 0a10601f751..41046563f98 100644 --- a/source/blender/blenkernel/intern/preferences.c +++ b/source/blender/blenkernel/intern/preferences.c @@ -24,6 +24,7 @@ #include "MEM_guardedalloc.h" +#include "BLI_fileops.h" #include "BLI_listbase.h" #include "BLI_path_util.h" #include "BLI_string.h" @@ -83,6 +84,18 @@ void BKE_preferences_asset_library_name_set(UserDef *userdef, sizeof(library->name)); } +/* Set the library path, ensuring it is pointing to a directory. + * Single blend files can only act as "Current File" library; libraries on disk + * should always be directories. If the path does not exist, that's fine; it can + * created as directory if necessary later. */ +void BKE_preferences_asset_library_path_set(bUserAssetLibrary *library, const char *path) +{ + BLI_strncpy_utf8(library->path, path, sizeof(library->path)); + if (BLI_is_file(library->path)) { + BLI_path_parent_dir(library->path); + } +} + bUserAssetLibrary *BKE_preferences_asset_library_find_from_index(const UserDef *userdef, int index) { return BLI_findlink(&userdef->asset_libraries, index); |