diff options
author | Campbell Barton <ideasman42@gmail.com> | 2020-09-01 10:02:51 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-09-01 10:02:51 +0300 |
commit | c78c4252669a83c90188d90df6089f6e3a7b31c6 (patch) | |
tree | 5c103b00bca72751d654479333a13ef56673e663 /source | |
parent | 06ba233374dc9f3dfd2efb904d067abc9f04e3de (diff) |
PyAPI: expose 'bl_options' for operators in bpy.ops
Useful for checking which operators are only for internal use.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/makesrna/RNA_enum_types.h | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_wm.c | 8 | ||||
-rw-r--r-- | source/blender/python/intern/bpy_operator.c | 10 |
3 files changed, 15 insertions, 5 deletions
diff --git a/source/blender/makesrna/RNA_enum_types.h b/source/blender/makesrna/RNA_enum_types.h index fb9b62e729a..08442a36c87 100644 --- a/source/blender/makesrna/RNA_enum_types.h +++ b/source/blender/makesrna/RNA_enum_types.h @@ -117,6 +117,8 @@ extern const EnumPropertyItem rna_enum_motionpath_bake_location_items[]; extern const EnumPropertyItem rna_enum_event_value_items[]; extern const EnumPropertyItem rna_enum_event_type_items[]; extern const EnumPropertyItem rna_enum_event_type_mask_items[]; + +extern const EnumPropertyItem rna_enum_operator_type_flag_items[]; extern const EnumPropertyItem rna_enum_operator_return_items[]; extern const EnumPropertyItem rna_enum_operator_property_tags[]; diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index bfd99c01551..f248764eab9 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -438,8 +438,7 @@ static const EnumPropertyItem keymap_modifiers_items[] = { }; #endif -#ifndef RNA_RUNTIME -static const EnumPropertyItem operator_flag_items[] = { +const EnumPropertyItem rna_enum_operator_type_flag_items[] = { {OPTYPE_REGISTER, "REGISTER", 0, @@ -465,7 +464,6 @@ static const EnumPropertyItem operator_flag_items[] = { {OPTYPE_INTERNAL, "INTERNAL", 0, "Internal", "Removes the operator from search results"}, {0, NULL, 0, NULL, NULL}, }; -#endif const EnumPropertyItem rna_enum_operator_return_items[] = { {OPERATOR_RUNNING_MODAL, @@ -1928,7 +1926,7 @@ static void rna_def_operator(BlenderRNA *brna) prop = RNA_def_property(srna, "bl_options", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "type->flag"); - RNA_def_property_enum_items(prop, operator_flag_items); + RNA_def_property_enum_items(prop, rna_enum_operator_type_flag_items); RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL | PROP_ENUM_FLAG); RNA_def_property_ui_text(prop, "Options", "Options for this operator type"); @@ -2020,7 +2018,7 @@ static void rna_def_macro_operator(BlenderRNA *brna) prop = RNA_def_property(srna, "bl_options", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "type->flag"); - RNA_def_property_enum_items(prop, operator_flag_items); + RNA_def_property_enum_items(prop, rna_enum_operator_type_flag_items); RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL | PROP_ENUM_FLAG); RNA_def_property_ui_text(prop, "Options", "Options for this operator type"); diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c index 274c1934e9e..6d86d788644 100644 --- a/source/blender/python/intern/bpy_operator.c +++ b/source/blender/python/intern/bpy_operator.c @@ -436,12 +436,22 @@ static PyObject *pyop_getrna_type(PyObject *UNUSED(self), PyObject *value) return (PyObject *)pyrna; } +static PyObject *pyop_get_bl_options(PyObject *UNUSED(self), PyObject *value) +{ + wmOperatorType *ot; + if ((ot = ot_lookup_from_py_string(value, "get_bl_options")) == NULL) { + return NULL; + } + return pyrna_enum_bitfield_to_py(rna_enum_operator_type_flag_items, ot->flag); +} + static struct PyMethodDef bpy_ops_methods[] = { {"poll", (PyCFunction)pyop_poll, METH_VARARGS, NULL}, {"call", (PyCFunction)pyop_call, METH_VARARGS, NULL}, {"as_string", (PyCFunction)pyop_as_string, METH_VARARGS, NULL}, {"dir", (PyCFunction)pyop_dir, METH_NOARGS, NULL}, {"get_rna_type", (PyCFunction)pyop_getrna_type, METH_O, NULL}, + {"get_bl_options", (PyCFunction)pyop_get_bl_options, METH_O, NULL}, {"macro_define", (PyCFunction)PYOP_wrap_macro_define, METH_VARARGS, NULL}, {NULL, NULL, 0, NULL}, }; |