[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58031] trunk/blender/release/scripts/ startup/bl_operators/wm.py: remove dummy menu which WM_OT_context_menu_enum needed, use popup menu directly instead.

Campbell Barton ideasman42 at gmail.com
Sat Jul 6 05:04:50 CEST 2013


Revision: 58031
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58031
Author:   campbellbarton
Date:     2013-07-06 03:04:48 +0000 (Sat, 06 Jul 2013)
Log Message:
-----------
remove dummy menu which WM_OT_context_menu_enum needed, use popup menu directly instead.

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_operators/wm.py

Modified: trunk/blender/release/scripts/startup/bl_operators/wm.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_operators/wm.py	2013-07-06 02:20:39 UTC (rev 58030)
+++ trunk/blender/release/scripts/startup/bl_operators/wm.py	2013-07-06 03:04:48 UTC (rev 58031)
@@ -471,34 +471,29 @@
         return operator_path_undo_return(context, data_path)
 
 
-class WM_MT_context_menu_enum(Menu):
-    bl_label = ""
-    data_path = ""  # BAD DESIGN, set from operator below.
+class WM_OT_context_menu_enum(Operator):
+    bl_idname = "wm.context_menu_enum"
+    bl_label = "Context Enum Menu"
+    bl_options = {'UNDO', 'INTERNAL'}
+    data_path = rna_path_prop
 
-    def draw(self, context):
+    def execute(self, context):
         data_path = self.data_path
         value = context_path_validate(context, data_path)
+
         if value is Ellipsis:
             return {'PASS_THROUGH'}
+
         base_path, prop_string = data_path.rsplit(".", 1)
         value_base = context_path_validate(context, base_path)
         prop = value_base.bl_rna.properties[prop_string]
 
-        layout = self.layout
-        layout.label(prop.name, icon=prop.icon)
-        layout.prop(value_base, prop_string, expand=True)
+        def draw_cb(self, context):
+            layout = self.layout
+            layout.prop(value_base, prop_string, expand=True)
 
+        context.window_manager.popup_menu(draw_func=draw_cb, title=prop.name, icon=prop.icon)
 
-class WM_OT_context_menu_enum(Operator):
-    bl_idname = "wm.context_menu_enum"
-    bl_label = "Context Enum Menu"
-    bl_options = {'UNDO', 'INTERNAL'}
-    data_path = rna_path_prop
-
-    def execute(self, context):
-        data_path = self.data_path
-        WM_MT_context_menu_enum.data_path = data_path
-        bpy.ops.wm.call_menu(name="WM_MT_context_menu_enum")
         return {'PASS_THROUGH'}
 
 




More information about the Bf-blender-cvs mailing list