Blender V4.3
BKE_preferences.h File Reference
#include "BLI_compiler_attrs.h"
#include "BLI_sys_types.h"

Go to the source code of this file.

Functions

Extension Repositories
bUserExtensionRepoBKE_preferences_extension_repo_add (UserDef *userdef, const char *name, const char *module, const char *custom_dirpath)
 
void BKE_preferences_extension_repo_remove (UserDef *userdef, bUserExtensionRepo *repo)
 
bUserExtensionRepoBKE_preferences_extension_repo_add_default_remote (UserDef *userdef)
 
bUserExtensionRepoBKE_preferences_extension_repo_add_default_user (UserDef *userdef)
 
bUserExtensionRepoBKE_preferences_extension_repo_add_default_system (UserDef *userdef)
 
void BKE_preferences_extension_repo_add_defaults_all (UserDef *userdef)
 
void BKE_preferences_extension_repo_name_set (UserDef *userdef, bUserExtensionRepo *repo, const char *name)
 
void BKE_preferences_extension_repo_module_set (UserDef *userdef, bUserExtensionRepo *repo, const char *module)
 
void BKE_preferences_extension_repo_custom_dirpath_set (bUserExtensionRepo *repo, const char *path)
 
size_t BKE_preferences_extension_repo_dirpath_get (const bUserExtensionRepo *repo, char *dirpath, int dirpath_maxncpy)
 
size_t BKE_preferences_extension_repo_user_dirpath_get (const bUserExtensionRepo *repo, char *dirpath, const int dirpath_maxncpy)
 
bool BKE_preferences_extension_repo_module_is_valid (const bUserExtensionRepo *repo)
 
bUserExtensionRepoBKE_preferences_extension_repo_find_index (const UserDef *userdef, int index)
 
bUserExtensionRepoBKE_preferences_extension_repo_find_by_module (const UserDef *userdef, const char *module)
 
bUserExtensionRepoBKE_preferences_extension_repo_find_by_remote_url_prefix (const UserDef *userdef, const char *remote_url_full, const bool only_enabled)
 
int BKE_preferences_extension_repo_remote_scheme_end (const char *url)
 
void BKE_preferences_extension_remote_to_name (const char *remote_url, char name[64])
 
int BKE_preferences_extension_repo_get_index (const UserDef *userdef, const bUserExtensionRepo *repo)
 
void BKE_preferences_extension_repo_read_data (struct BlendDataReader *reader, bUserExtensionRepo *repo)
 
void BKE_preferences_extension_repo_write_data (struct BlendWriter *writer, const bUserExtensionRepo *repo)
 
#bUserAssetShelvesSettings
bUserAssetShelfSettingsBKE_preferences_asset_shelf_settings_get (const UserDef *userdef, const char *shelf_idname)
 
bool BKE_preferences_asset_shelf_settings_is_catalog_path_enabled (const UserDef *userdef, const char *shelf_idname, const char *catalog_path)
 
bool BKE_preferences_asset_shelf_settings_ensure_catalog_path_enabled (UserDef *userdef, const char *shelf_idname, const char *catalog_path)
 

Assert Libraries

#define BKE_PREFS_ASSET_LIBRARY_DEFAULT_NAME   N_("User Library")
 
struct bUserAssetLibraryBKE_preferences_asset_library_add (struct UserDef *userdef, const char *name, const char *dirpath) ATTR_NONNULL(1)
 
void BKE_preferences_asset_library_remove (struct UserDef *userdef, struct bUserAssetLibrary *library) ATTR_NONNULL()
 
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 bUserAssetLibraryBKE_preferences_asset_library_find_index (const struct UserDef *userdef, int index) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
 
struct bUserAssetLibraryBKE_preferences_asset_library_find_by_name (const struct UserDef *userdef, const char *name) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
 
struct bUserAssetLibraryBKE_preferences_asset_library_containing_path (const struct UserDef *userdef, const char *path) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
 
int BKE_preferences_asset_library_get_index (const struct UserDef *userdef, const struct bUserAssetLibrary *library) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
 
void BKE_preferences_asset_library_default_add (struct UserDef *userdef) ATTR_NONNULL()
 

Macro Definition Documentation

◆ BKE_PREFS_ASSET_LIBRARY_DEFAULT_NAME

#define BKE_PREFS_ASSET_LIBRARY_DEFAULT_NAME   N_("User Library")

Name of the asset library added by default. Needs translation with DATA_() still.

Definition at line 29 of file BKE_preferences.h.

Referenced by BKE_preferences_asset_library_default_add(), and blo_do_versions_userdef().

Function Documentation

◆ BKE_preferences_asset_library_add()

◆ BKE_preferences_asset_library_containing_path()

struct bUserAssetLibrary * BKE_preferences_asset_library_containing_path ( const struct UserDef * userdef,
const char * path )

Return the bUserAssetLibrary that contains the given file/directory path. The given path can be the library's top-level directory, or any path inside that directory.

When more than one asset libraries match, the first matching one is returned (no smartness when there nested asset libraries).

Return NULL when no such asset library is found.

Referenced by AS_asset_library_find_suitable_root_path_from_path(), blender::ed::asset::asset_bundle_install_poll(), blender::bke::asset_edit_weak_reference_from_id(), and blender::bke::asset_link_id().

◆ BKE_preferences_asset_library_default_add()

◆ BKE_preferences_asset_library_find_by_name()

◆ BKE_preferences_asset_library_find_index()

◆ BKE_preferences_asset_library_get_index()

int BKE_preferences_asset_library_get_index ( const struct UserDef * userdef,
const struct bUserAssetLibrary * library )

◆ BKE_preferences_asset_library_name_set()

void BKE_preferences_asset_library_name_set ( struct UserDef * userdef,
struct bUserAssetLibrary * library,
const char * name )

◆ BKE_preferences_asset_library_path_set()

void BKE_preferences_asset_library_path_set ( struct bUserAssetLibrary * library,
const char * path )

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.

Definition at line 76 of file preferences.cc.

References BLI_is_file(), BLI_path_parent_dir(), bUserAssetLibrary::dirpath, and STRNCPY.

◆ BKE_preferences_asset_library_remove()

void BKE_preferences_asset_library_remove ( struct UserDef * userdef,
struct bUserAssetLibrary * library )

Unlink and free a library preference member.

Note
Free's library itself.

Definition at line 58 of file preferences.cc.

References UserDef::asset_libraries, and BLI_freelinkN().

Referenced by preferences_asset_library_remove_exec(), and blender::asset_system::tests::AssetCatalogTest::save_from_memory_into_existing_asset_lib().

◆ BKE_preferences_asset_shelf_settings_ensure_catalog_path_enabled()

bool BKE_preferences_asset_shelf_settings_ensure_catalog_path_enabled ( UserDef * userdef,
const char * shelf_idname,
const char * catalog_path )

Enable a catalog path for a asset shelf identified by shelf_idname. Will create the shelf settings in the Preferences if necessary.

Returns
true if the catalog was newly enabled. The Preferences should be tagged as dirty then.

Definition at line 569 of file preferences.cc.

References asset_shelf_settings_ensure(), BKE_asset_catalog_path_list_add_path(), and BKE_preferences_asset_shelf_settings_is_catalog_path_enabled().

Referenced by BKE_blendfile_userdef_from_defaults(), blo_do_versions_userdef(), blender::ed::asset::shelf::settings_set_catalog_path_enabled(), and blender::ed::sculpt_paint::show_catalog_in_asset_shelf().

◆ BKE_preferences_asset_shelf_settings_get()

bUserAssetShelfSettings * BKE_preferences_asset_shelf_settings_get ( const UserDef * userdef,
const char * shelf_idname )

◆ BKE_preferences_asset_shelf_settings_is_catalog_path_enabled()

bool BKE_preferences_asset_shelf_settings_is_catalog_path_enabled ( const UserDef * userdef,
const char * shelf_idname,
const char * catalog_path )

◆ BKE_preferences_extension_remote_to_name()

void BKE_preferences_extension_remote_to_name ( const char * remote_url,
char name[64] )

Set a name based on a URL, e.g. https://www.example.com/path -> www.example.com.

Referenced by preferences_extension_repo_add_exec().

◆ BKE_preferences_extension_repo_add()

◆ BKE_preferences_extension_repo_add_default_remote()

◆ BKE_preferences_extension_repo_add_default_system()

bUserExtensionRepo * BKE_preferences_extension_repo_add_default_system ( UserDef * userdef)

◆ BKE_preferences_extension_repo_add_default_user()

bUserExtensionRepo * BKE_preferences_extension_repo_add_default_user ( UserDef * userdef)

◆ BKE_preferences_extension_repo_add_defaults_all()

void BKE_preferences_extension_repo_add_defaults_all ( UserDef * userdef)

◆ BKE_preferences_extension_repo_custom_dirpath_set()

void BKE_preferences_extension_repo_custom_dirpath_set ( bUserExtensionRepo * repo,
const char * path )

Definition at line 282 of file preferences.cc.

References bUserExtensionRepo::custom_dirpath, and STRNCPY.

◆ BKE_preferences_extension_repo_dirpath_get()

◆ BKE_preferences_extension_repo_find_by_module()

bUserExtensionRepo * BKE_preferences_extension_repo_find_by_module ( const UserDef * userdef,
const char * module )

Definition at line 338 of file preferences.cc.

References BLI_findstring(), UserDef::extension_repos, module, and offsetof.

◆ BKE_preferences_extension_repo_find_by_remote_url_prefix()

bUserExtensionRepo * BKE_preferences_extension_repo_find_by_remote_url_prefix ( const UserDef * userdef,
const char * remote_url_full,
const bool only_enabled )

◆ BKE_preferences_extension_repo_find_index()

bUserExtensionRepo * BKE_preferences_extension_repo_find_index ( const UserDef * userdef,
int index )

Definition at line 333 of file preferences.cc.

References BLI_findlink(), and UserDef::extension_repos.

◆ BKE_preferences_extension_repo_get_index()

int BKE_preferences_extension_repo_get_index ( const UserDef * userdef,
const bUserExtensionRepo * repo )

Definition at line 501 of file preferences.cc.

References BLI_findindex(), and UserDef::extension_repos.

◆ BKE_preferences_extension_repo_module_is_valid()

bool BKE_preferences_extension_repo_module_is_valid ( const bUserExtensionRepo * repo)

Check the module name is valid, while this should always be the case, use this as an additional safely check before performing destructive operations such as recursive file removal to prevent file/memory corruption causing user data loss.

Definition at line 267 of file preferences.cc.

References BLI_strnlen(), bUserExtensionRepo::module, and strncpy_py_module().

Referenced by preferences_extension_repo_remove_exec().

◆ BKE_preferences_extension_repo_module_set()

void BKE_preferences_extension_repo_module_set ( UserDef * userdef,
bUserExtensionRepo * repo,
const char * module )

◆ BKE_preferences_extension_repo_name_set()

void BKE_preferences_extension_repo_name_set ( UserDef * userdef,
bUserExtensionRepo * repo,
const char * name )

◆ BKE_preferences_extension_repo_read_data()

void BKE_preferences_extension_repo_read_data ( struct BlendDataReader * reader,
bUserExtensionRepo * repo )

Definition at line 507 of file preferences.cc.

References bUserExtensionRepo::access_token, and BLO_read_string().

Referenced by read_userdef().

◆ BKE_preferences_extension_repo_remote_scheme_end()

int BKE_preferences_extension_repo_remote_scheme_end ( const char * url)

Skip the https or http part of a URL https://, return zero if none is found.

Definition at line 419 of file preferences.cc.

References ARRAY_SIZE.

Referenced by BKE_preferences_extension_remote_to_name(), BKE_preferences_extension_repo_find_by_remote_url_prefix(), and drop_extension_url_poll().

◆ BKE_preferences_extension_repo_remove()

void BKE_preferences_extension_repo_remove ( UserDef * userdef,
bUserExtensionRepo * repo )

◆ BKE_preferences_extension_repo_user_dirpath_get()

size_t BKE_preferences_extension_repo_user_dirpath_get ( const bUserExtensionRepo * repo,
char * dirpath,
const int dirpath_maxncpy )

Returns a user editable directory associated with this repository. Needed so extensions may have local data.

Definition at line 321 of file preferences.cc.

References BKE_appdir_folder_id_user_notest(), BLENDER_USER_EXTENSIONS, BLI_path_join, and bUserExtensionRepo::module.

Referenced by preferences_extension_repo_remove_exec(), and preferences_extension_repo_remove_invoke().

◆ BKE_preferences_extension_repo_write_data()

void BKE_preferences_extension_repo_write_data ( struct BlendWriter * writer,
const bUserExtensionRepo * repo )

Definition at line 514 of file preferences.cc.

References bUserExtensionRepo::access_token, and BLO_write_string().

Referenced by write_userdef().