[Bf-blender-cvs] [7d384bcdbb4] tmp-static-override-insertion: Static Override: Lock 'edition' of constraints & modifiers from overridden data.
Bastien Montagne
noreply at git.blender.org
Wed May 2 18:46:48 CEST 2018
Commit: 7d384bcdbb401393388ffb7f64ce3eea6a3fc86a
Author: Bastien Montagne
Date: Wed May 2 18:45:22 2018 +0200
Branches: tmp-static-override-insertion
https://developer.blender.org/rB7d384bcdbb401393388ffb7f64ce3eea6a3fc86a
Static Override: Lock 'edition' of constraints & modifiers from overridden data.
Means that you cannot move or delete constraints/modifiers coming from
the overriden linked datablock. Local inserted ones can be fully edited.
===================================================================
M source/blender/editors/object/object_constraint.c
M source/blender/editors/object/object_modifier.c
===================================================================
diff --git a/source/blender/editors/object/object_constraint.c b/source/blender/editors/object/object_constraint.c
index 95778b73e55..6a0dedd1d43 100644
--- a/source/blender/editors/object/object_constraint.c
+++ b/source/blender/editors/object/object_constraint.c
@@ -598,6 +598,11 @@ static int edit_constraint_poll_generic(bContext *C, StructRNA *rna_type)
return 0;
}
+ if (ID_IS_STATIC_OVERRIDE(ob)) {
+ CTX_wm_operator_poll_msg_set(C, "Cannot edit constraints comming from static override");
+ return (((bConstraint *)ptr.data)->flag & CONSTRAINT_STATICOVERRIDE_LOCAL) != 0;
+ }
+
return 1;
}
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index e2197c58d49..dd04a730542 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -825,9 +825,19 @@ int edit_modifier_poll_generic(bContext *C, StructRNA *rna_type, int obtype_flag
PointerRNA ptr = CTX_data_pointer_get_type(C, "modifier", rna_type);
Object *ob = (ptr.id.data) ? ptr.id.data : ED_object_active_context(C);
+ if (!ptr.data) {
+ CTX_wm_operator_poll_msg_set(C, "Context missing 'modifier'");
+ return 0;
+ }
+
if (!ob || ID_IS_LINKED(ob)) return 0;
if (obtype_flag && ((1 << ob->type) & obtype_flag) == 0) return 0;
if (ptr.id.data && ID_IS_LINKED(ptr.id.data)) return 0;
+
+ if (ID_IS_STATIC_OVERRIDE(ob)) {
+ CTX_wm_operator_poll_msg_set(C, "Cannot edit modifiers comming from static override");
+ return (((ModifierData *)ptr.data)->flag & eModifierFlag_StaticOverride_Local) != 0;
+ }
return 1;
}
More information about the Bf-blender-cvs
mailing list