Docs: invoke_search_popup uses bl_property
authorCampbell Barton <ideasman42@gmail.com>
Fri, 26 Jan 2018 00:52:01 +0000 (11:52 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 26 Jan 2018 00:52:01 +0000 (11:52 +1100)
Also add code example in docs.

doc/python_api/examples/bpy.types.Operator.6.py [new file with mode: 0644]
source/blender/makesrna/intern/rna_wm_api.c

diff --git a/doc/python_api/examples/bpy.types.Operator.6.py b/doc/python_api/examples/bpy.types.Operator.6.py
new file mode 100644 (file)
index 0000000..d32a7d5
--- /dev/null
@@ -0,0 +1,38 @@
+"""
+Enum Search Popup
++++++++++++++++++
+
+You may want to have an operator prompt the user to select an item
+from a search field, this can be done using :class:`bpy.types.Operator.invoke_search_popup`.
+"""
+import bpy
+from bpy.props import EnumProperty
+
+
+class SearchEnumOperator(bpy.types.Operator):
+    bl_idname = "object.search_enum_operator"
+    bl_label = "Search Enum Operator"
+    bl_property = "my_search"
+
+    my_search = EnumProperty(
+        name="My Search",
+        items=(
+            ('FOO', "Foo", ""),
+            ('BAR', "Bar", ""),
+            ('BAZ', "Baz", ""),
+        ),
+    )
+
+    def execute(self, context):
+        self.report({'INFO'}, "Selected:" + self.my_search)
+        return {'FINISHED'}
+
+    def invoke(self, context, event):
+        context.window_manager.invoke_search_popup(self)
+        return {'RUNNING_MODAL'}
+
+
+bpy.utils.register_class(SearchEnumOperator)
+
+# test call
+bpy.ops.object.search_enum_operator('INVOKE_DEFAULT')
index 089504e342a730726d6534274900bd1b5d68ae3c..cbbe50ccf03d8572f2aa550b315d75594ae2281b 100644 (file)
@@ -459,8 +459,11 @@ void RNA_api_wm(StructRNA *srna)
 
        /* invoke enum */
        func = RNA_def_function(srna, "invoke_search_popup", "rna_Operator_enum_search_invoke");
-       RNA_def_function_ui_description(func, "Operator search popup invoke (search in values of "
-                                       "operator's type 'prop' EnumProperty, and execute it on confirmation)");
+       RNA_def_function_ui_description(
+               func,
+               "Operator search popup invoke which "
+               "searches values of the operator's :class:`bpy.types.Operator.bl_property` "
+               "(which must be an EnumProperty), executing it on confirmation");
        rna_generic_op_invoke(func, 0);
 
        /* invoke functions, for use with python */