[Bf-blender-cvs] [b5298bf8199] master: Cleanup: menu example

Campbell Barton noreply at git.blender.org
Sat Apr 29 08:16:32 CEST 2017


Commit: b5298bf81999a0845c6bb98cf8520806271da14b
Author: Campbell Barton
Date:   Sat Apr 29 16:20:06 2017 +1000
Branches: master
https://developer.blender.org/rBb5298bf81999a0845c6bb98cf8520806271da14b

Cleanup: menu example

remove some redundant checks, imports

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

M	doc/python_api/examples/bpy.types.Menu.4.py

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

diff --git a/doc/python_api/examples/bpy.types.Menu.4.py b/doc/python_api/examples/bpy.types.Menu.4.py
index a59c710c8e7..04ceb6654da 100644
--- a/doc/python_api/examples/bpy.types.Menu.4.py
+++ b/doc/python_api/examples/bpy.types.Menu.4.py
@@ -1,81 +1,81 @@
 """
-Custom item in the right click menu
-+++++++++++++++++++++++++++++++++++
+Extending the Button Context Menu
++++++++++++++++++++++++++++++++++
 
-This example enables you to insert your own menu entry into the common 
-right click menu that you get while hovering over a value field, 
+This example enables you to insert your own menu entry into the common
+right click menu that you get while hovering over a value field,
 color, string, etc.
 
 To make the example work, you have to first select an object
-then right click on an user interface element (maybe a color in the 
-material properties) and choose "Execute custom action".
-
-Executing the operator will then dump all values directly to a 
-console, so make sure to open a terminal by clicking on 
-"Help >> Toggle System Console" or execute Blender directly 
-from a terminal on your system of choice)
+then right click on an user interface element (maybe a color in the
+material properties) and choose *Execute Custom Action*.
 
+Executing the operator will then print all values.
 """
 
 import bpy
-from bpy.types import Header, Menu, Panel
+from bpy.types import Menu
+
 
 def dump(obj, text):
-    print('-'*40, text, '-'*40)
     for attr in dir(obj):
-        if hasattr( obj, attr ):
-            print( "obj.%s = %s" % (attr, getattr(obj, attr)))
+        print("%r.%s = %s" % (obj, attr, getattr(obj, attr)))
+
 
-class TEST_OT_Rmb(bpy.types.Operator):
+class WM_OT_button_context_test(bpy.types.Operator):
     """Right click entry test"""
-    bl_idname = "object.rmb_test_op"
-    bl_label = "Execute custom action"
+    bl_idname = "wm.button_context_test"
+    bl_label = "Run Context Test"
 
     @classmethod
     def poll(cls, context):
         return context.active_object is not None
 
     def execute(self, context):
-        if hasattr(context, 'button_pointer'):
-            btn = context.button_pointer 
-            dump(btn, 'button_pointer')
-
-        if hasattr(context, 'button_prop'):
-            prop = context.button_prop
-            dump(prop, 'button_prop')
-
-        if hasattr(context, 'button_operator'):
-            op = context.button_operator
-            dump(op, 'button_operator')     
-            
+        value = getattr(context, "button_pointer", None)
+        if value is not None:
+            dump(value, "button_pointer")
+
+        value = getattr(context, "button_prop", None)
+        if value is not None:
+            dump(value, "button_prop")
+
+        value = getattr(context, "button_operator", None)
+        if value is not None:
+            dump(value, "button_operator")
+
         return {'FINISHED'}
 
+
 # This class has to be exactly named like that to insert an entry in the right click menu
 class WM_MT_button_context(Menu):
-    bl_label = "Add Viddyoze Tag"
+    bl_label = "Unused"
 
     def draw(self, context):
         pass
 
+
 def menu_func(self, context):
     layout = self.layout
     layout.separator()
-    layout.operator("object.rmb_test_op")
+    layout.operator(WM_OT_button_context_test.bl_idname)
 
 classes = (
-    TEST_OT_Rmb,
+    WM_OT_button_context_test,
     WM_MT_button_context,
 )
 
+
 def register():
     for cls in classes:
         bpy.utils.register_class(cls)
     bpy.types.WM_MT_button_context.append(menu_func)
 
+
 def unregister():
     for cls in classes:
         bpy.utils.unregister_class(cls)
     bpy.types.WM_MT_button_context.remove(menu_func)
 
 if __name__ == "__main__":
-    register()
\ No newline at end of file
+    register()




More information about the Bf-blender-cvs mailing list