|
Blender
V2.93
|
#include <ctype.h>#include <errno.h>#include <float.h>#include <stddef.h>#include <stdio.h>#include <string.h>#include "MEM_guardedalloc.h"#include "DNA_ID.h"#include "DNA_key_types.h"#include "DNA_scene_types.h"#include "DNA_screen_types.h"#include "DNA_windowmanager_types.h"#include "BLI_bitmap.h"#include "BLI_blenlib.h"#include "BLI_ghash.h"#include "BLI_linklist.h"#include "BLI_math.h"#include "BLI_memarena.h"#include "BLI_utildefines.h"#include "BLO_readfile.h"#include "BKE_context.h"#include "BKE_global.h"#include "BKE_key.h"#include "BKE_layer.h"#include "BKE_lib_id.h"#include "BKE_lib_override.h"#include "BKE_lib_remap.h"#include "BKE_main.h"#include "BKE_report.h"#include "BKE_idtype.h"#include "DEG_depsgraph.h"#include "DEG_depsgraph_build.h"#include "IMB_colormanagement.h"#include "ED_datafiles.h"#include "ED_screen.h"#include "RNA_access.h"#include "RNA_define.h"#include "WM_api.h"#include "WM_types.h"#include "wm_files.h"Go to the source code of this file.
Classes | |
| struct | WMLinkAppendDataItem |
| struct | WMLinkAppendData |
Functions | |
Append Single Data-Block & Return it | |
Used for appending workspace from startup files. | |
| ID * | WM_file_append_datablock (Main *bmain, Scene *scene, ViewLayer *view_layer, View3D *v3d, const char *filepath, const short id_code, const char *id_name) |
Library Relocate Operator & Library Reload API | |
| static int | wm_lib_relocate_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event)) |
| static void | lib_relocate_do_remap (Main *bmain, ID *old_id, ID *new_id, ReportList *reports, const bool do_reload, const short remap_flags) |
| static void | lib_relocate_do (Main *bmain, Library *library, WMLinkAppendData *lapp_data, ReportList *reports, const bool do_reload) |
| void | WM_lib_reload (Library *lib, bContext *C, ReportList *reports) |
| static int | wm_lib_relocate_exec_do (bContext *C, wmOperator *op, bool do_reload) |
| static int | wm_lib_relocate_exec (bContext *C, wmOperator *op) |
| void | WM_OT_lib_relocate (wmOperatorType *ot) |
| static int | wm_lib_reload_exec (bContext *C, wmOperator *op) |
| void | WM_OT_lib_reload (wmOperatorType *ot) |
Functions for dealing with append/link operators and helpers.
Definition in file wm_files_link.c.
| typedef struct WMLinkAppendData WMLinkAppendData |
| typedef struct WMLinkAppendDataItem WMLinkAppendDataItem |
|
static |
Definition at line 803 of file wm_files_link.c.
References BKE_id_free(), BKE_idtype_idcode_is_linkable(), BKE_key_from_id(), BKE_key_from_id_p(), BKE_lib_override_library_update(), BKE_main_collection_sync(), BKE_main_id_refcount_recompute(), BKE_main_id_tag_all(), BKE_main_id_tag_idcode(), BKE_main_lib_objects_recalc_all(), BKE_main_lock(), BKE_main_unlock(), BLI_addtail(), BLI_assert, BLI_bitmap_set_all(), BLI_remlink(), LibraryLink_Params::bmain, WMLinkAppendDataItem::customdata, DEG_relations_tag_update(), ListBase::first, ID::flag, FOREACH_MAIN_ID_BEGIN, FOREACH_MAIN_ID_END, GS, id, Library::id, Key::id, ID_IS_LINKED, ID_IS_OVERRIDE_LIBRARY_REAL, ID_LI, ID_REMAP_NO_INDIRECT_PROXY_DATA_USAGE, ID_REMAP_SKIP_INDIRECT_USAGE, ID_REMAP_SKIP_NEVER_NULL_USAGE, id_us_clear_real(), id_us_min(), id_us_plus_no_lib(), IMB_colormanagement_check_file_config(), INDEX_ID_MAX, WMLinkAppendData::items, lib, ID::lib, lib_relocate_do_remap(), LIB_TAG_DOIT, LIB_TAG_PRE_EXISTING, WMLinkAppendDataItem::libraries, library, LinkNode::link, LinkNodePair::list, ID::name, WMLinkAppendDataItem::new_id, LinkNode::next, ID::next, NULL, WMLinkAppendData::num_items, WMLinkAppendData::num_libraries, ID::override_library, IDOverrideLibrary::reference, set_listbasepointers(), ID::tag, ID::us, which_libbase(), wm_link_append_data_item_add(), and wm_link_do().
Referenced by WM_lib_reload(), and wm_lib_relocate_exec_do().
|
static |
Definition at line 717 of file wm_files_link.c.
References BKE_libblock_remap_locked(), BKE_reportf(), BLI_assert, BLI_assert_unreachable, BLI_strncpy(), LibraryLink_Params::bmain, Freestyle::c, ID::flag, GS, id_fake_user_clear(), id_fake_user_set(), id_sort_by_name(), len, ID::lib, LIB_FAKEUSER, LIB_TAG_INDIRECT, MAX_ID_NAME, MIN2, ID::name, NULL, Library::parent, RPT_WARNING, ID::tag, ID::us, and which_libbase().
Referenced by lib_relocate_do().
| ID* WM_file_append_datablock | ( | Main * | bmain, |
| Scene * | scene, | ||
| ViewLayer * | view_layer, | ||
| View3D * | v3d, | ||
| const char * | filepath, | ||
| const short | id_code, | ||
| const char * | id_name | ||
| ) |
Definition at line 651 of file wm_files_link.c.
References BKE_library_make_local(), BKE_main_id_tag_all(), BLI_BITMAP_ENABLE, LibraryLink_Params::bmain, id, id_name(), LIB_TAG_PRE_EXISTING, WMLinkAppendDataItem::libraries, WMLinkAppendDataItem::new_id, NULL, scene, LibraryLink_Params::v3d, LibraryLink_Params::view_layer, wm_link_append_data_free(), wm_link_append_data_item_add(), wm_link_append_data_library_add(), wm_link_append_data_new(), and wm_link_do().
Referenced by wm_drag_asset_id_import(), and workspace_append_activate_exec().
| void WM_lib_reload | ( | Library * | lib, |
| bContext * | C, | ||
| ReportList * | reports | ||
| ) |
Definition at line 990 of file wm_files_link.c.
References BKE_reportf(), BLI_exists(), BLO_has_bfile_extension(), BLO_LIBLINK_FORCE_INDIRECT, BLO_LIBLINK_USE_PLACEHOLDERS, C, CTX_data_main(), lib, lib_relocate_do(), NC_WINDOW, NULL, RPT_ERROR, WM_event_add_notifier(), wm_link_append_data_free(), wm_link_append_data_library_add(), and wm_link_append_data_new().
|
static |
Definition at line 1180 of file wm_files_link.c.
References C, and wm_lib_relocate_exec_do().
Referenced by WM_OT_lib_reload().
|
static |
Definition at line 1149 of file wm_files_link.c.
References C, and wm_lib_relocate_exec_do().
Referenced by WM_OT_lib_relocate().
|
static |
Definition at line 1018 of file wm_files_link.c.
References BKE_libblock_find_name(), BKE_main_blendfile_path(), BKE_report(), BKE_reportf(), BLI_exists(), BLI_join_dirfile(), BLI_path_cmp, BLI_strncpy(), BLO_has_bfile_extension(), BLO_LIBLINK_FORCE_INDIRECT, BLO_LIBLINK_USE_PLACEHOLDERS, LibraryLink_Params::bmain, C, CTX_data_main(), FILE_MAX, FILE_MAXDIR, FILE_RELPATH, LibraryLink_Params::flag, WMLinkAppendData::flag, G, ID_LI, lib, lib_relocate_do(), MAX_NAME, NC_WINDOW, NULL, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, wmOperator::reports, RNA_BEGIN, RNA_boolean_get(), RNA_END, RNA_property_collection_length(), RNA_string_get(), RNA_struct_find_property(), RPT_ERROR, RPT_ERROR_INVALID_INPUT, WM_event_add_notifier(), wm_link_append_data_free(), wm_link_append_data_library_add(), and wm_link_append_data_new().
Referenced by wm_lib_reload_exec(), and wm_lib_relocate_exec().
|
static |
Definition at line 691 of file wm_files_link.c.
References BKE_libblock_find_name(), BKE_reportf(), C, CTX_data_main(), ID_LI, lib, MAX_NAME, OPERATOR_CANCELLED, OPERATOR_RUNNING_MODAL, wmOperator::ptr, wmOperator::reports, RNA_string_get(), RNA_string_set(), RPT_ERROR_INVALID_INPUT, and WM_event_add_fileselect().
Referenced by WM_OT_lib_relocate().
|
static |
Definition at line 181 of file wm_files_link.c.
References BLI_memarena_free(), and WMLinkAppendData::memarena.
Referenced by WM_file_append_datablock(), WM_lib_reload(), wm_lib_relocate_exec_do(), and wm_link_append_exec().
|
static |
Definition at line 198 of file wm_files_link.c.
References BLI_BITMAP_NEW_MEMARENA, BLI_linklist_append_arena(), BLI_memarena_alloc(), BLI_strncpy(), WMLinkAppendDataItem::customdata, WMLinkAppendDataItem::idcode, WMLinkAppendData::items, len, WMLinkAppendDataItem::libraries, WMLinkAppendData::memarena, WMLinkAppendDataItem::name, WMLinkAppendDataItem::new_id, NULL, WMLinkAppendData::num_items, and WMLinkAppendData::num_libraries.
Referenced by lib_relocate_do(), WM_file_append_datablock(), and wm_link_append_exec().
|
static |
Definition at line 188 of file wm_files_link.c.
References BLI_linklist_append_arena(), BLI_memarena_alloc(), BLI_strncpy(), len, WMLinkAppendData::libraries, WMLinkAppendData::memarena, and WMLinkAppendData::num_libraries.
Referenced by WM_file_append_datablock(), WM_lib_reload(), wm_lib_relocate_exec_do(), and wm_link_append_exec().
|
static |
Definition at line 170 of file wm_files_link.c.
References BLI_memarena_calloc(), BLI_memarena_new(), BLI_MEMARENA_STD_BUFSIZE, WMLinkAppendData::flag, and WMLinkAppendData::memarena.
Referenced by WM_file_append_datablock(), WM_lib_reload(), wm_lib_relocate_exec_do(), and wm_link_append_exec().
|
static |
Definition at line 348 of file wm_files_link.c.
References BKE_idtype_idcode_from_name(), BKE_library_make_local(), BKE_main_blendfile_path(), BKE_main_id_tag_all(), BKE_main_lib_objects_recalc_all(), BKE_reportf(), BKE_view_layer_base_deselect_all(), BLI_BITMAP_ENABLE, BLI_ghash_free(), BLI_ghash_haskey(), BLI_ghash_insert(), BLI_ghash_lookup(), BLI_ghash_new(), BLI_ghashutil_ptrcmp(), BLI_ghashutil_ptrhash(), BLI_ghashutil_strcmp(), BLI_ghashutil_strhash_p(), BLI_gset_free(), BLI_gset_haskey(), BLI_gset_insert(), BLI_gset_new_ex(), BLI_join_dirfile(), BLI_path_cmp, BLI_strdup(), BLI_strncpy(), BLO_library_path_explode(), LibraryLink_Params::bmain, C, CTX_data_main(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), DEG_relations_tag_update(), FILE_COLLECTION_INSTANCE, FILE_LINK, FILE_MAX, FILE_MAX_LIBEXTRA, FILE_MAXDIR, FILE_OBDATA_INSTANCE, LibraryLink_Params::flag, G, Scene::id, IMB_colormanagement_check_file_config(), WMLinkAppendData::items, ID::lib, LIB_TAG_PRE_EXISTING, WMLinkAppendDataItem::libraries, LinkNode::link, LinkNodePair::list, MEM_freeN, ID::name, NC_WINDOW, LinkNode::next, NULL, WMLinkAppendData::num_items, WMLinkAppendData::num_libraries, OPERATOR_CANCELLED, OPERATOR_FINISHED, POINTER_AS_INT, POINTER_FROM_INT, wmOperator::ptr, wmOperator::reports, RNA_BEGIN, RNA_boolean_get(), RNA_END, RNA_property_collection_length(), RNA_string_get(), RNA_struct_find_property(), RPT_ERROR, RPT_WARNING, scene, LibraryLink_Params::view_layer, WM_event_add_notifier(), wm_link_append_data_free(), wm_link_append_data_item_add(), wm_link_append_data_library_add(), wm_link_append_data_new(), wm_link_append_flag(), wm_link_append_item_poll(), and wm_link_do().
Referenced by WM_OT_append(), and WM_OT_link().
|
static |
Definition at line 118 of file wm_files_link.c.
References FILE_ACTIVE_COLLECTION, FILE_AUTOSELECT, FILE_COLLECTION_INSTANCE, FILE_LINK, FILE_OBDATA_INSTANCE, FILE_RELPATH, wmOperator::ptr, RNA_boolean_get(), RNA_property_boolean_get(), and RNA_struct_find_property().
Referenced by wm_link_append_exec().
|
static |
Definition at line 100 of file wm_files_link.c.
References BKE_main_blendfile_path_from_global(), BLI_path_parent_dir(), BLI_strncpy(), C, FILE_MAX, G, OPERATOR_RUNNING_MODAL, wmOperator::ptr, RNA_string_set(), RNA_struct_property_is_set(), and WM_event_add_fileselect().
Referenced by WM_OT_append(), and WM_OT_link().
|
static |
Check if an item defined by name and group can be appended/linked.
| reports | Optionally report an error when an item can't be appended/linked. |
Definition at line 308 of file wm_files_link.c.
References BKE_idtype_idcode_from_name(), BKE_idtype_idcode_is_linkable(), BKE_reportf(), ID_WS, and RPT_ERROR_INVALID_INPUT.
Referenced by wm_link_append_exec().
|
static |
Definition at line 83 of file wm_files_link.c.
References C, CTX_data_edit_object(), and WM_operator_winactive().
Referenced by WM_OT_append(), and WM_OT_link().
|
static |
Definition at line 550 of file wm_files_link.c.
References ot, PROP_HIDDEN, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_property_flag(), and wmOperatorType::srna.
Referenced by WM_OT_append(), and WM_OT_link().
|
static |
Definition at line 220 of file wm_files_link.c.
References BKE_reportf(), BLI_assert, BLI_bitmap_set_all(), BLI_BITMAP_TEST, BLO_blendhandle_close(), BLO_blendhandle_from_file(), BLO_blendhandle_from_memory(), BLO_EMBEDDED_STARTUP_BLEND, BLO_library_link_begin(), BLO_library_link_end(), BLO_library_link_named_part(), BLO_library_link_params_init_with_context(), LibraryLink_Params::bmain, Main::curlib, datatoc_startup_blend, datatoc_startup_blend_size, LibraryLink_Params::flag, WMLinkAppendData::flag, LibraryLink_Params::id_tag_extra, WMLinkAppendDataItem::idcode, WMLinkAppendData::items, lib, LIB_TAG_MISSING, WMLinkAppendDataItem::libraries, WMLinkAppendData::libraries, LinkNode::link, LinkNodePair::list, WMLinkAppendDataItem::name, WMLinkAppendDataItem::new_id, LinkNode::next, NULL, WMLinkAppendData::num_items, WMLinkAppendData::num_libraries, RPT_WARNING, scene, STREQ, Main::subversionfile, LibraryLink_Params::v3d, Main::versionfile, and LibraryLink_Params::view_layer.
Referenced by lib_relocate_do(), WM_file_append_datablock(), and wm_link_append_exec().
| void WM_OT_append | ( | wmOperatorType * | ot | ) |
Definition at line 608 of file wm_files_link.c.
References wmOperatorType::description, wmOperatorType::exec, FILE_DEFAULTDISPLAY, FILE_LOADLIB, FILE_OPENFILE, FILE_SORT_DEFAULT, FILE_TYPE_BLENDER, FILE_TYPE_BLENDERLIB, FILE_TYPE_FOLDER, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), wmOperatorType::srna, WM_FILESEL_DIRECTORY, WM_FILESEL_FILENAME, WM_FILESEL_FILEPATH, WM_FILESEL_FILES, WM_FILESEL_SHOW_PROPS, wm_link_append_exec(), wm_link_append_invoke(), wm_link_append_poll(), wm_link_append_properties_common(), and WM_operator_properties_filesel().
Referenced by wm_operatortypes_register().
| void WM_OT_lib_reload | ( | wmOperatorType * | ot | ) |
Definition at line 1185 of file wm_files_link.c.
References wmOperatorType::description, wmOperatorType::exec, FILE_BLENDER, FILE_DEFAULTDISPLAY, FILE_OPENFILE, FILE_SORT_DEFAULT, FILE_TYPE_BLENDER, FILE_TYPE_FOLDER, wmOperatorType::flag, wmOperatorType::idname, MAX_NAME, wmOperatorType::name, NULL, OPTYPE_UNDO, ot, PROP_HIDDEN, RNA_def_property_flag(), RNA_def_string(), wmOperatorType::srna, WM_FILESEL_DIRECTORY, WM_FILESEL_FILENAME, WM_FILESEL_FILEPATH, WM_FILESEL_RELPATH, wm_lib_reload_exec(), and WM_operator_properties_filesel().
Referenced by wm_operatortypes_register().
| void WM_OT_lib_relocate | ( | wmOperatorType * | ot | ) |
Definition at line 1154 of file wm_files_link.c.
References wmOperatorType::description, wmOperatorType::exec, FILE_BLENDER, FILE_DEFAULTDISPLAY, FILE_OPENFILE, FILE_SORT_DEFAULT, FILE_TYPE_BLENDER, FILE_TYPE_FOLDER, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, MAX_NAME, wmOperatorType::name, NULL, OPTYPE_UNDO, ot, PROP_HIDDEN, RNA_def_property_flag(), RNA_def_string(), wmOperatorType::srna, WM_FILESEL_DIRECTORY, WM_FILESEL_FILENAME, WM_FILESEL_FILEPATH, WM_FILESEL_FILES, WM_FILESEL_RELPATH, wm_lib_relocate_exec(), wm_lib_relocate_invoke(), and WM_operator_properties_filesel().
Referenced by wm_operatortypes_register().
| void WM_OT_link | ( | wmOperatorType * | ot | ) |
Definition at line 584 of file wm_files_link.c.
References wmOperatorType::description, wmOperatorType::exec, FILE_DEFAULTDISPLAY, FILE_LOADLIB, FILE_OPENFILE, FILE_SORT_DEFAULT, FILE_TYPE_BLENDER, FILE_TYPE_BLENDERLIB, FILE_TYPE_FOLDER, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, OPTYPE_UNDO, ot, wmOperatorType::poll, WM_FILESEL_DIRECTORY, WM_FILESEL_FILENAME, WM_FILESEL_FILEPATH, WM_FILESEL_FILES, WM_FILESEL_RELPATH, WM_FILESEL_SHOW_PROPS, wm_link_append_exec(), wm_link_append_invoke(), wm_link_append_poll(), wm_link_append_properties_common(), and WM_operator_properties_filesel().
Referenced by wm_operatortypes_register().