Commit: 3f36cd3f33e52d53d82a3a221e2a576cf26390a5
Author: Bastien Montagne
Date:   Mon Jul 25 17:37:34 2016 +0200
Branches: asset-engine
https://developer.blender.org/rB3f36cd3f33e52d53d82a3a221e2a576cf26390a5

Changed most of ID_IS_LINKED_foo checks as needed.

Basically, due to new 'virtual' libraries & 'path' assets, we consider those 
'virtualmy  linked' IDs as:
* Local for editing purpose (i.e. they are editable).
* Linked for datablock management purposes (i.e. they can be made local, etc.).

Note: all this is more like a quick hack to test 'file-based' asset 
repositories (like cloud)
in comming weeks. I really do not think we should use that in the end, an 
full-featured
'overriding ID' system (as proposed in replacement of proxies for 2.8) would be 
much saner imho.

===================================================================

M       source/blender/blenkernel/intern/armature_update.c
M       source/blender/blenkernel/intern/bpath.c
M       source/blender/blenkernel/intern/brush.c
M       source/blender/blenkernel/intern/constraint.c
M       source/blender/blenkernel/intern/library.c
M       source/blender/blenkernel/intern/library_query.c
M       source/blender/blenkernel/intern/modifier.c
M       source/blender/blenkernel/intern/node.c
M       source/blender/blenkernel/intern/object.c
M       source/blender/blenkernel/intern/object_update.c
M       source/blender/blenkernel/intern/packedFile.c
M       source/blender/editors/interface/interface_regions.c
M       source/blender/editors/space_outliner/outliner_draw.c
M       source/blender/editors/space_outliner/outliner_tools.c

===================================================================

diff --git a/source/blender/blenkernel/intern/armature_update.c 
b/source/blender/blenkernel/intern/armature_update.c
index aebd564..ef8a2f1 100644
--- a/source/blender/blenkernel/intern/armature_update.c
+++ b/source/blender/blenkernel/intern/armature_update.c
@@ -696,7 +696,7 @@ void BKE_pose_eval_flush(EvaluationContext 
*UNUSED(eval_ctx),
 
 void BKE_pose_eval_proxy_copy(EvaluationContext *UNUSED(eval_ctx), Object *ob)
 {
-       BLI_assert(ID_IS_LINKED_DATABLOCK(ob) && ob->proxy_from != NULL);
+       BLI_assert(ID_IS_LINKED(ob) && ob->proxy_from != NULL);
        DEBUG_PRINT("%s on %s\n", __func__, ob->id.name);
        if (BKE_pose_copy_result(ob->pose, ob->proxy_from->pose) == false) {
                printf("Proxy copy error, lib Object: %s proxy Object: %s\n",
diff --git a/source/blender/blenkernel/intern/bpath.c 
b/source/blender/blenkernel/intern/bpath.c
index a708c59..d079583 100644
--- a/source/blender/blenkernel/intern/bpath.c
+++ b/source/blender/blenkernel/intern/bpath.c
@@ -424,7 +424,7 @@ void BKE_bpath_traverse_id(Main *bmain, ID *id, 
BPathVisitor visit_cb, const int
 {
        const char *absbase = (flag & BKE_BPATH_TRAVERSE_ABS) ? 
ID_BLEND_PATH(bmain, id) : NULL;
 
-       if ((flag & BKE_BPATH_TRAVERSE_SKIP_LIBRARY) && 
ID_IS_LINKED_DATABLOCK(id)) {
+       if ((flag & BKE_BPATH_TRAVERSE_SKIP_LIBRARY) && ID_IS_LINKED(id)) {
                return;
        }
 
diff --git a/source/blender/blenkernel/intern/brush.c 
b/source/blender/blenkernel/intern/brush.c
index 8ef1fae..da58ad3 100644
--- a/source/blender/blenkernel/intern/brush.c
+++ b/source/blender/blenkernel/intern/brush.c
@@ -225,7 +225,7 @@ void BKE_brush_make_local(Main *bmain, Brush *brush, const 
bool lib_local)
         * - mixed: make copy
         */
 
-       if (!ID_IS_LINKED_DATABLOCK(brush)) {
+       if (!ID_IS_LINKED(brush)) {
                return;
        }
 
diff --git a/source/blender/blenkernel/intern/constraint.c 
b/source/blender/blenkernel/intern/constraint.c
index 4c9ddd4..1f2cc2e 100644
--- a/source/blender/blenkernel/intern/constraint.c
+++ b/source/blender/blenkernel/intern/constraint.c
@@ -4649,7 +4649,7 @@ void BKE_constraints_id_loop(ListBase *conlist, 
ConstraintIDFunc func, void *use
 /* helper for BKE_constraints_copy(), to be used for making sure that ID's are 
valid */
 static void con_extern_cb(bConstraint *UNUSED(con), ID **idpoin, bool 
UNUSED(is_reference), void *UNUSED(userData))
 {
-       if (*idpoin && ID_IS_LINKED_DATABLOCK(*idpoin))
+       if (*idpoin && ID_IS_LINKED(*idpoin))
                id_lib_extern(*idpoin);
 }
 
diff --git a/source/blender/blenkernel/intern/library.c 
b/source/blender/blenkernel/intern/library.c
index 4d708cb..f19f1b4 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -280,7 +280,7 @@ void BKE_id_expand_local(ID *id)
  */
 void BKE_id_copy_ensure_local(Main *bmain, ID *old_id, ID *new_id)
 {
-       if (ID_IS_LINKED_DATABLOCK(old_id)) {
+       if (ID_IS_LINKED(old_id)) {
                BKE_id_expand_local(new_id);
                BKE_id_lib_local_paths(bmain, old_id->lib, new_id);
        }
@@ -299,7 +299,7 @@ void BKE_id_make_local_generic(Main *bmain, ID *id, const 
bool id_in_mainlist, c
         * In case we make a whole lib's content local, we always want to 
localize, and we skip remapping (done later).
         */
 
-       if (!ID_IS_LINKED_DATABLOCK(id)) {
+       if (!ID_IS_LINKED(id)) {
                return;
        }
 
@@ -715,7 +715,7 @@ void BKE_main_lib_objects_recalc_all(Main *bmain)
 
        /* flag for full recalc */
        for (ob = bmain->object.first; ob; ob = ob->id.next) {
-               if (ID_IS_LINKED_DATABLOCK(ob)) {
+               if (ID_IS_LINKED(ob)) {
                        DAG_id_tag_update(&ob->id, OB_RECALC_OB | 
OB_RECALC_DATA | OB_RECALC_TIME);
                }
        }
@@ -1141,7 +1141,7 @@ static int id_relink_looper(void *UNUSED(user_data), ID 
*UNUSED(self_id), ID **i
 
 void BKE_libblock_relink(ID *id)
 {
-       if (ID_IS_LINKED_DATABLOCK(id))
+       if (ID_IS_LINKED(id))
                return;
 
        BKE_library_foreach_ID_link(id, id_relink_looper, NULL, 0);
@@ -1357,7 +1357,7 @@ static ID *is_dupid(ListBase *lb, ID *id, const char 
*name)
        
        for (idtest = lb->first; idtest; idtest = idtest->next) {
                /* if idtest is not a lib */ 
-               if (id != idtest && !ID_IS_LINKED_DATABLOCK(idtest)) {
+               if (id != idtest && !ID_IS_LINKED_DATABLOCK(idtest)) {  /* 
Virtual lib IDs are considered as local ones here. */
                        /* do not test alphabetic! */
                        /* optimized */
                        if (idtest->name[2] == name[0]) {
@@ -1498,7 +1498,7 @@ bool new_id(ListBase *lb, ID *id, const char *tname)
        bool result;
        char name[MAX_ID_NAME - 2];
 
-       /* if library, don't rename */
+       /* if real library, don't rename */
        if (ID_IS_LINKED_DATABLOCK(id))
                return false;
 
diff --git a/source/blender/blenkernel/intern/library_query.c 
b/source/blender/blenkernel/intern/library_query.c
index 1ded6f6..a33c63c 100644
--- a/source/blender/blenkernel/intern/library_query.c
+++ b/source/blender/blenkernel/intern/library_query.c
@@ -298,7 +298,7 @@ void BKE_library_foreach_ID_link(ID *id, 
LibraryIDLinkCallback callback, void *u
 
        do {
                data.self_id = id;
-               data.cd_flag = ID_IS_LINKED_DATABLOCK(id) ? 
IDWALK_INDIRECT_USAGE : 0;
+               data.cd_flag = ID_IS_LINKED(id) ? IDWALK_INDIRECT_USAGE : 0;
 
                AnimData *adt = BKE_animdata_from_id(id);
                if (adt) {
@@ -447,7 +447,7 @@ void BKE_library_foreach_ID_link(ID *id, 
LibraryIDLinkCallback callback, void *u
                                 * Since this field is set/owned by 'user' of 
this ID (and not ID itself), it is only indirect usage
                                 * if proxy object is linked... Twisted. */
                                if (object->proxy_from) {
-                                       data.cd_flag = 
ID_IS_LINKED_DATABLOCK(object->proxy_from) ? IDWALK_INDIRECT_USAGE : 0;
+                                       data.cd_flag = 
ID_IS_LINKED(object->proxy_from) ? IDWALK_INDIRECT_USAGE : 0;
                                }
                                CALLBACK_INVOKE(object->proxy_from, IDWALK_NOP);
                                data.cd_flag = data_cd_flag;
diff --git a/source/blender/blenkernel/intern/modifier.c 
b/source/blender/blenkernel/intern/modifier.c
index 41e4c21..349e99b 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -707,7 +707,7 @@ void test_object_modifiers(Object *ob)
  */
 const char *modifier_path_relbase(Object *ob)
 {
-       if (G.relbase_valid || ID_IS_LINKED_DATABLOCK(ob)) {
+       if (G.relbase_valid || ID_IS_LINKED(ob)) {
                return ID_BLEND_PATH(G.main, &ob->id);
        }
        else {
diff --git a/source/blender/blenkernel/intern/node.c 
b/source/blender/blenkernel/intern/node.c
index 2b88ae4..fad7b3b 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -2652,7 +2652,7 @@ void BKE_node_clipboard_add_node(bNode *node)
        node_info->id = node->id;
        if (node->id) {
                BLI_strncpy(node_info->id_name, node->id->name, 
sizeof(node_info->id_name));
-               if (ID_IS_LINKED_DATABLOCK(node->id)) {
+               if (ID_IS_LINKED_DATABLOCK(node->id)) {  /* Don't want virtual 
libraries here... */
                        BLI_strncpy(node_info->library_name, 
node->id->lib->filepath, sizeof(node_info->library_name));
                }
                else {
diff --git a/source/blender/blenkernel/intern/object.c 
b/source/blender/blenkernel/intern/object.c
index d736a45..4bf92c3 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -1193,7 +1193,7 @@ void BKE_object_make_local(Main *bmain, Object *ob, const 
bool lib_local)
         * In case we make a whole lib's content local, we always want to 
localize, and we skip remapping (done later).
         */
 
-       if (!ID_IS_LINKED_DATABLOCK(ob)) {
+       if (!ID_IS_LINKED(ob)) {
                return;
        }
 
@@ -1220,15 +1220,15 @@ void BKE_object_make_local(Main *bmain, Object *ob, 
const bool lib_local)
 /* Returns true if the Object is from an external blend file (libdata) */
 bool BKE_object_is_libdata(Object *ob)
 {
-       return (ob && ID_IS_LINKED_DATABLOCK(ob));
+       return (ob && ID_IS_LINKED(ob));
 }
 
 /* Returns true if the Object data is from an external blend file (libdata) */
 bool BKE_object_obdata_is_libdata(Object *ob)
 {
        /* Linked objects with local obdata are forbidden! */
-       BLI_assert(!ob || !ob->data || (ID_IS_LINKED_DATABLOCK(ob) ? 
ID_IS_LINKED_DATABLOCK(ob->data) : true));
-       return (ob && ob->data && ID_IS_LINKED_DATABLOCK(ob->data));
+       BLI_assert(!ob || !ob->data || (ID_IS_LINKED(ob) ? 
ID_IS_LINKED(ob->data) : true));
+       return (ob && ob->data && ID_IS_LINKED(ob->data));
 }
 
 /* *************** PROXY **************** */
@@ -1275,7 +1275,7 @@ void BKE_object_copy_proxy_drivers(Object *ob, Object 
*target)
                                                        /* only on local 
objects because this causes indirect links
                                                         * 'a -> b -> c', blend 
to point directly to a.blend
                                                         * when a.blend has a 
proxy thats linked into c.blend  */
-                                                       if 
(!ID_IS_LINKED_DATABLOCK(ob))
+                                                       if (!ID_IS_LINKED(ob))
                                                                
id_lib_extern((ID *)dtar->id);
                                                }
                                        }
@@ -1293,7 +1293,7 @@ void BKE_object_copy_proxy_drivers(Object *ob, Object 
*target)
 void BKE_object_make_proxy(Object *ob, Object *target, Object *gob)
 {
        /* paranoia checks */
-       if (ID_IS_LINKED_DATABLOCK(ob) || !ID_IS_LINKED_DATABLOCK(target)) {
+       if (ID_IS_LINKED(ob) || !ID_IS_LINKED(target)) {
                printf("cannot make proxy\n");
                return;
        }
@@ -2670,7 +2670,7 @@ void BKE_object_handle_update_ex(EvaluationContext 
*eval_ctx,
                                printf("recalcob %s\n", ob->id.name + 2);
                        
                        /* handle proxy copy for target */
-                       if (ID_IS_LINKED_DATABLOCK(ob) && ob->proxy_from) {
+                       if (ID_IS_LINKED(ob) && ob->proxy_from) {
                                // printf("ob proxy copy, lib ob %s proxy 
%s\n", ob->id.name, ob->proxy_from->id.name);
                                if (ob->proxy_from->proxy_group) { /* transform 
proxy into group space */
                                        Object *obg = 
ob->proxy_from->proxy_group;
diff --git a/source/blender/blenkernel/intern/object_update.c 
b/source/blender/blenkernel/intern/object_update.c
index 5cb704e..ebd090b 100644
--- a/source/blender/blenkernel/intern/object_update.c
+++ b/source/blender/blenkernel/intern/object_update.c
@@ -203,7 +203,7 @@ void BKE_object_handle_data_update(EvaluationContext 
*eval_ctx,
                        break;
                }
                case OB_ARMATURE:
-                       if (ID_IS_LINKED_DATABLOCK(ob) && ob->proxy_from) {
+                       if (ID_IS_LINKED(ob) && ob->proxy_from) {
                                if (BKE_pose_copy_result(ob->pose, 
ob->proxy_from->pose) == false) {
                                        printf("Proxy copy error, lib Object: 
%s proxy Object: %s\n",
                                               ob->id.name + 2, 
ob->proxy_from->id.name + 2);
@@ -315,7 +315,7 @@ void BKE_object_eval_uber_transform(EvaluationContext 
*UNUSED(eval_ctx),
        //

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to