[Bf-blender-cvs] [682ccd770c6] master: LibOverride: Refactor collection items 'local' helper functions.

Bastien Montagne noreply at git.blender.org
Tue Dec 8 09:42:41 CET 2020


Commit: 682ccd770c629402b771491d45a0523f75750f30
Author: Bastien Montagne
Date:   Tue Dec 8 09:40:42 2020 +0100
Branches: master
https://developer.blender.org/rB682ccd770c629402b771491d45a0523f75750f30

LibOverride: Refactor collection items 'local' helper functions.

It's easier to read and less 'weird' to check that an item is non-local
in a liboverride data-block, than the other way around. Thanks to
@sybren for noticing it.

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

M	source/blender/blenkernel/BKE_constraint.h
M	source/blender/blenkernel/BKE_gpencil_modifier.h
M	source/blender/blenkernel/BKE_modifier.h
M	source/blender/blenkernel/intern/constraint.c
M	source/blender/blenkernel/intern/gpencil_modifier.c
M	source/blender/blenkernel/intern/modifier.c
M	source/blender/editors/object/object_constraint.c
M	source/blender/editors/object/object_gpencil_modifier.c
M	source/blender/editors/object/object_modifier.c

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

diff --git a/source/blender/blenkernel/BKE_constraint.h b/source/blender/blenkernel/BKE_constraint.h
index 1589bff7501..7a14787c191 100644
--- a/source/blender/blenkernel/BKE_constraint.h
+++ b/source/blender/blenkernel/BKE_constraint.h
@@ -177,8 +177,8 @@ struct bConstraint *BKE_constraint_find_from_target(struct Object *ob,
                                                     struct bConstraintTarget *tgt,
                                                     struct bPoseChannel **r_pchan);
 
-bool BKE_constraint_is_local_in_liboverride(const struct Object *ob,
-                                            const struct bConstraint *con);
+bool BKE_constraint_is_nonlocal_in_liboverride(const struct Object *ob,
+                                               const struct bConstraint *con);
 
 struct bConstraint *BKE_constraint_add_for_object(struct Object *ob, const char *name, short type);
 struct bConstraint *BKE_constraint_add_for_pose(struct Object *ob,
diff --git a/source/blender/blenkernel/BKE_gpencil_modifier.h b/source/blender/blenkernel/BKE_gpencil_modifier.h
index bdc583048b8..ccf65a585ef 100644
--- a/source/blender/blenkernel/BKE_gpencil_modifier.h
+++ b/source/blender/blenkernel/BKE_gpencil_modifier.h
@@ -278,8 +278,8 @@ void BKE_gpencil_modifiers_foreach_tex_link(struct Object *ob,
                                             GreasePencilTexWalkFunc walk,
                                             void *userData);
 
-bool BKE_gpencil_modifier_is_local_in_liboverride(const struct Object *ob,
-                                                  const struct GpencilModifierData *gmd);
+bool BKE_gpencil_modifier_is_nonlocal_in_liboverride(const struct Object *ob,
+                                                     const struct GpencilModifierData *gmd);
 
 typedef struct GpencilVirtualModifierData {
   ArmatureGpencilModifierData amd;
diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h
index 37f566d6f8e..73e33124b43 100644
--- a/source/blender/blenkernel/BKE_modifier.h
+++ b/source/blender/blenkernel/BKE_modifier.h
@@ -431,7 +431,8 @@ bool BKE_modifier_is_non_geometrical(ModifierData *md);
 bool BKE_modifier_is_enabled(const struct Scene *scene,
                              struct ModifierData *md,
                              int required_mode);
-bool BKE_modifier_is_local_in_liboverride(const struct Object *ob, const struct ModifierData *md);
+bool BKE_modifier_is_nonlocal_in_liboverride(const struct Object *ob,
+                                             const struct ModifierData *md);
 void BKE_modifier_set_error(const struct Object *ob,
                             struct ModifierData *md,
                             const char *format,
diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c
index 982e91dd1e0..d9135572159 100644
--- a/source/blender/blenkernel/intern/constraint.c
+++ b/source/blender/blenkernel/intern/constraint.c
@@ -5963,10 +5963,10 @@ static bConstraint *constraint_find_original_for_update(bConstraintOb *cob, bCon
  *
  * \note This check is only valid for a liboverride data-block, it always return \a true otherwise.
  */
-bool BKE_constraint_is_local_in_liboverride(const Object *ob, const bConstraint *con)
+bool BKE_constraint_is_nonlocal_in_liboverride(const Object *ob, const bConstraint *con)
 {
-  return (!ID_IS_OVERRIDE_LIBRARY(ob) ||
-          (con != NULL && (con->flag & CONSTRAINT_OVERRIDE_LIBRARY_LOCAL) != 0));
+  return (ID_IS_OVERRIDE_LIBRARY(ob) &&
+          (con == NULL || (con->flag & CONSTRAINT_OVERRIDE_LIBRARY_LOCAL) == 0));
 }
 
 /* -------- Constraints and Proxies ------- */
diff --git a/source/blender/blenkernel/intern/gpencil_modifier.c b/source/blender/blenkernel/intern/gpencil_modifier.c
index 7425a1a5f7a..ac81e4a5470 100644
--- a/source/blender/blenkernel/intern/gpencil_modifier.c
+++ b/source/blender/blenkernel/intern/gpencil_modifier.c
@@ -531,16 +531,16 @@ void BKE_gpencil_modifier_set_error(GpencilModifierData *md, const char *_format
 }
 
 /**
- * Check whether given modifier is local when the object is a library override.
+ * Check whether given modifier is not local (i.e. from linked data) when the object is a library
+ * override.
  *
  * \param gmd May be NULL, in which case we consider it as a non-local modifier case.
- *
- * \note This check is only valid for a liboverride data-block, it always return \a true otherwise.
  */
-bool BKE_gpencil_modifier_is_local_in_liboverride(const Object *ob, const GpencilModifierData *gmd)
+bool BKE_gpencil_modifier_is_nonlocal_in_liboverride(const Object *ob,
+                                                     const GpencilModifierData *gmd)
 {
-  return (!ID_IS_OVERRIDE_LIBRARY(ob) ||
-          (gmd != NULL && (gmd->flag & eGpencilModifierFlag_OverrideLibrary_Local) != 0));
+  return (ID_IS_OVERRIDE_LIBRARY(ob) &&
+          (gmd == NULL || (gmd->flag & eGpencilModifierFlag_OverrideLibrary_Local) == 0));
 }
 
 /**
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c
index 7865d44c446..405de3bdca1 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -581,10 +581,10 @@ bool BKE_modifier_is_enabled(const struct Scene *scene, ModifierData *md, int re
  *
  * \note This check is only valid for a liboverride data-block, it always return \a true otherwise.
  */
-bool BKE_modifier_is_local_in_liboverride(const Object *ob, const ModifierData *md)
+bool BKE_modifier_is_nonlocal_in_liboverride(const Object *ob, const ModifierData *md)
 {
-  return (!ID_IS_OVERRIDE_LIBRARY(ob) ||
-          (md != NULL && (md->flag & eModifierFlag_OverrideLibrary_Local) != 0));
+  return (ID_IS_OVERRIDE_LIBRARY(ob) &&
+          (md == NULL || (md->flag & eModifierFlag_OverrideLibrary_Local) == 0));
 }
 
 CDMaskLink *BKE_modifier_calc_data_masks(struct Scene *scene,
diff --git a/source/blender/editors/object/object_constraint.c b/source/blender/editors/object/object_constraint.c
index e684ad03f53..dd015f59e8d 100644
--- a/source/blender/editors/object/object_constraint.c
+++ b/source/blender/editors/object/object_constraint.c
@@ -706,8 +706,9 @@ static bool edit_constraint_poll_generic(bContext *C,
     return false;
   }
 
-  if (!is_liboverride_allowed && !BKE_constraint_is_local_in_liboverride(ob, con)) {
-    CTX_wm_operator_poll_msg_set(C, "Cannot edit constraints coming from library override");
+  if (!is_liboverride_allowed && BKE_constraint_is_nonlocal_in_liboverride(ob, con)) {
+    CTX_wm_operator_poll_msg_set(
+        C, "Cannot edit constraints coming from linked data in a library override");
     return false;
   }
 
diff --git a/source/blender/editors/object/object_gpencil_modifier.c b/source/blender/editors/object/object_gpencil_modifier.c
index d3f165678c3..af95f5581bd 100644
--- a/source/blender/editors/object/object_gpencil_modifier.c
+++ b/source/blender/editors/object/object_gpencil_modifier.c
@@ -443,9 +443,9 @@ static bool gpencil_edit_modifier_poll_generic(bContext *C,
     return false;
   }
 
-  if (!is_liboverride_allowed &&
-      (mod == NULL || !BKE_gpencil_modifier_is_local_in_liboverride(ob, mod))) {
-    CTX_wm_operator_poll_msg_set(C, "Cannot edit modifiers coming from library override");
+  if (!is_liboverride_allowed && BKE_gpencil_modifier_is_nonlocal_in_liboverride(ob, mod)) {
+    CTX_wm_operator_poll_msg_set(
+        C, "Cannot edit modifiers coming from linked data in a library override");
     return false;
   }
 
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index bb4581b0ee8..3111003703f 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -1052,8 +1052,9 @@ bool edit_modifier_poll_generic(bContext *C,
     return false;
   }
 
-  if (!is_liboverride_allowed && !BKE_modifier_is_local_in_liboverride(ob, mod)) {
-    CTX_wm_operator_poll_msg_set(C, "Cannot edit modifiers coming from library override");
+  if (!is_liboverride_allowed && BKE_modifier_is_nonlocal_in_liboverride(ob, mod)) {
+    CTX_wm_operator_poll_msg_set(
+        C, "Cannot edit modifiers coming from linked data in a library override");
     return false;
   }



More information about the Bf-blender-cvs mailing list