Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Eisel <julian@blender.org>2020-03-26 23:03:42 +0300
committerJulian Eisel <julian@blender.org>2020-03-26 23:18:45 +0300
commitc94b6209861ca7cc3985b53474feed7d94c0221a (patch)
tree752054f0dca1338cda5cf8ad4f6d18573fcca3b9 /source/blender/windowmanager/intern/wm_files_link.c
parent357ed79cb93f9d655501a828c6cddd68282de62d (diff)
parentafb1a64ccb81b7ed792f64151986f40f53af8da5 (diff)
Merge branch 'master' into wm-drag-drop-rewrite
Diffstat (limited to 'source/blender/windowmanager/intern/wm_files_link.c')
-rw-r--r--source/blender/windowmanager/intern/wm_files_link.c57
1 files changed, 32 insertions, 25 deletions
diff --git a/source/blender/windowmanager/intern/wm_files_link.c b/source/blender/windowmanager/intern/wm_files_link.c
index f0b186761ce..5acc8a5fbc6 100644
--- a/source/blender/windowmanager/intern/wm_files_link.c
+++ b/source/blender/windowmanager/intern/wm_files_link.c
@@ -23,40 +23,40 @@
* Functions for dealing with append/link operators and helpers.
*/
-#include <float.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdio.h>
-#include <stddef.h>
#include <assert.h>
+#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_screen_types.h"
#include "DNA_scene_types.h"
+#include "DNA_screen_types.h"
#include "DNA_windowmanager_types.h"
-#include "BLI_blenlib.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 "BLI_ghash.h"
#include "BLO_readfile.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_layer.h"
-#include "BKE_library.h"
-#include "BKE_library_remap.h"
+#include "BKE_lib_id.h"
+#include "BKE_lib_remap.h"
#include "BKE_main.h"
#include "BKE_report.h"
-#include "BKE_idcode.h"
+#include "BKE_idtype.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_build.h"
@@ -74,7 +74,9 @@
#include "wm_files.h"
-/* **************** link/append *************** */
+/* -------------------------------------------------------------------- */
+/** \name Link/Append Operator
+ * \{ */
static bool wm_link_append_poll(bContext *C)
{
@@ -304,11 +306,11 @@ static bool wm_link_append_item_poll(ReportList *reports,
return false;
}
- idcode = BKE_idcode_from_name(group);
+ idcode = BKE_idtype_idcode_from_name(group);
/* XXX For now, we do a nasty exception for workspace, forbid linking them.
* Not nice, ultimately should be solved! */
- if (!BKE_idcode_is_linkable(idcode) && (do_append || idcode != ID_WS)) {
+ if (!BKE_idtype_idcode_is_linkable(idcode) && (do_append || idcode != ID_WS)) {
if (reports) {
if (do_append) {
BKE_reportf(reports,
@@ -444,7 +446,8 @@ static int wm_link_append_exec(bContext *C, wmOperator *op)
lib_idx = POINTER_AS_INT(BLI_ghash_lookup(libraries, libname));
- item = wm_link_append_data_item_add(lapp_data, name, BKE_idcode_from_name(group), NULL);
+ item = wm_link_append_data_item_add(
+ lapp_data, name, BKE_idtype_idcode_from_name(group), NULL);
BLI_BITMAP_ENABLE(item->libraries, lib_idx);
}
}
@@ -456,7 +459,7 @@ static int wm_link_append_exec(bContext *C, wmOperator *op)
WMLinkAppendDataItem *item;
wm_link_append_data_library_add(lapp_data, libname);
- item = wm_link_append_data_item_add(lapp_data, name, BKE_idcode_from_name(group), NULL);
+ item = wm_link_append_data_item_add(lapp_data, name, BKE_idtype_idcode_from_name(group), NULL);
BLI_BITMAP_ENABLE(item->libraries, 0);
}
@@ -617,19 +620,22 @@ void WM_OT_append(wmOperatorType *ot)
"Localize all appended data, including those indirectly linked from other libraries");
}
-/** \name Append single datablock and return it.
+/** \} */
+
+/* -------------------------------------------------------------------- */
+/** \name Append Single Data-Block & Return it
*
* Used for appending workspace from startup files.
- *
* \{ */
-ID *WM_file_append_datablock(bContext *C,
+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)
{
- Main *bmain = CTX_data_main(C);
-
/* Tag everything so we can make local only the new datablock. */
BKE_main_id_tag_all(bmain, LIB_TAG_PRE_EXISTING, true);
@@ -641,9 +647,6 @@ ID *WM_file_append_datablock(bContext *C,
BLI_BITMAP_ENABLE(item->libraries, 0);
/* Link datablock. */
- Scene *scene = CTX_data_scene(C);
- ViewLayer *view_layer = CTX_data_view_layer(C);
- View3D *v3d = CTX_wm_view3d(C);
wm_link_do(lapp_data, NULL, bmain, scene, view_layer, v3d);
/* Get linked datablock and free working data. */
@@ -661,6 +664,10 @@ ID *WM_file_append_datablock(bContext *C,
/** \} */
+/* -------------------------------------------------------------------- */
+/** \name Library Relocate Operator & Library Reload API
+ * \{ */
+
static int wm_lib_relocate_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
{
Library *lib;
@@ -705,7 +712,7 @@ static void lib_relocate_do(Main *bmain,
ID *id = lbarray[lba_idx]->first;
const short idcode = id ? GS(id->name) : 0;
- if (!id || !BKE_idcode_is_linkable(idcode)) {
+ if (!id || !BKE_idtype_idcode_is_linkable(idcode)) {
/* No need to reload non-linkable datatypes,
* those will get relinked with their 'users ID'. */
continue;