Merge remote-tracking branch 'origin/blender-v3.0-release'
This commit is contained in:
@@ -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(
|
||||
|
@@ -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);
|
||||
|
@@ -3700,7 +3700,7 @@ static void filelist_readjob_main_assets_add_items(FileListReadJob *job_params,
|
||||
BKE_main_lock(job_params->current_main);
|
||||
|
||||
FOREACH_MAIN_ID_BEGIN (job_params->current_main, id_iter) {
|
||||
if (!id_iter->asset_data) {
|
||||
if (!id_iter->asset_data || ID_IS_LINKED(id_iter)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@@ -352,6 +352,12 @@ static void rna_userdef_asset_library_name_set(PointerRNA *ptr, const char *valu
|
||||
BKE_preferences_asset_library_name_set(&U, library, value);
|
||||
}
|
||||
|
||||
static void rna_userdef_asset_library_path_set(PointerRNA *ptr, const char *value)
|
||||
{
|
||||
bUserAssetLibrary *library = (bUserAssetLibrary *)ptr->data;
|
||||
BKE_preferences_asset_library_path_set(library, value);
|
||||
}
|
||||
|
||||
static void rna_userdef_script_autoexec_update(Main *UNUSED(bmain),
|
||||
Scene *UNUSED(scene),
|
||||
PointerRNA *ptr)
|
||||
@@ -6109,6 +6115,7 @@ static void rna_def_userdef_filepaths_asset_library(BlenderRNA *brna)
|
||||
prop = RNA_def_property(srna, "path", PROP_STRING, PROP_DIRPATH);
|
||||
RNA_def_property_ui_text(
|
||||
prop, "Path", "Path to a directory with .blend files to use as an asset library");
|
||||
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_userdef_asset_library_path_set");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user