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:
authorBastien Montagne <montagne29@wanadoo.fr>2018-03-14 13:47:35 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2018-03-14 13:47:35 +0300
commit59aa8d22efa2c7a1dff23211a1f63e2d5bdd0783 (patch)
tree750eff20644d5cd4e2a09629d20a84fae5a999e5 /source/blender/makesrna/intern/rna_access.c
parentd430d12123d88780480e1523340af7a0cddacf96 (diff)
Cleanup: use flags instead of collection of bools to get RNA override status.
Diffstat (limited to 'source/blender/makesrna/intern/rna_access.c')
-rw-r--r--source/blender/makesrna/intern/rna_access.c33
1 files changed, 17 insertions, 16 deletions
diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c
index 0f47a461cda..ab293af6212 100644
--- a/source/blender/makesrna/intern/rna_access.c
+++ b/source/blender/makesrna/intern/rna_access.c
@@ -7678,29 +7678,30 @@ IDOverrideStaticPropertyOperation *RNA_property_override_property_operation_get(
return BKE_override_static_property_operation_get(op, operation, NULL, NULL, index, index, strict, r_strict, r_created);
}
-void RNA_property_override_status(
- PointerRNA *ptr, PropertyRNA *prop, const int index,
- bool *r_overridable, bool *r_overridden, bool *r_mandatory, bool *r_locked)
+int RNA_property_override_status(PointerRNA *ptr, PropertyRNA *prop, const int index)
{
-#define SET_RET(_name, _val) if (_name != NULL) *_name = (_val)
-
- SET_RET(r_overridable, false);
- SET_RET(r_overridden, false);
- SET_RET(r_mandatory, false);
- SET_RET(r_locked, false);
+ int override_status = 0;
if (!ptr || !prop || !ptr->id.data || !((ID *)ptr->id.data)->override_static) {
- return;
+ return override_status;
}
- SET_RET(r_overridable, (prop->flag & PROP_OVERRIDABLE_STATIC) && (prop->flag & PROP_EDITABLE));
+ if ((prop->flag & PROP_OVERRIDABLE_STATIC) && (prop->flag & PROP_EDITABLE)) {
+ override_status |= RNA_OVERRIDE_STATUS_OVERRIDABLE;
+ }
- if (r_overridden || r_mandatory || r_locked) {
- IDOverrideStaticPropertyOperation *opop = RNA_property_override_property_operation_find(ptr, prop, index, false, NULL);
- SET_RET(r_overridden, opop != NULL);
- SET_RET(r_mandatory, (opop->flag & IDOVERRIDESTATIC_FLAG_MANDATORY) != 0);
- SET_RET(r_locked, (opop->flag & IDOVERRIDESTATIC_FLAG_LOCKED) != 0);
+ IDOverrideStaticPropertyOperation *opop = RNA_property_override_property_operation_find(ptr, prop, index, false, NULL);
+ if (opop != NULL) {
+ override_status |= RNA_OVERRIDE_STATUS_OVERRIDDEN;
+ if (opop->flag & IDOVERRIDESTATIC_FLAG_MANDATORY) {
+ override_status |= RNA_OVERRIDE_STATUS_MANDATORY;
+ }
+ if (opop->flag & IDOVERRIDESTATIC_FLAG_LOCKED) {
+ override_status |= RNA_OVERRIDE_STATUS_LOCKED;
+ }
}
+
+ return override_status;
}