[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [634] trunk/py/scripts/addons/ space_view3d_dynamic_menu.py: * Made various (objectmode) menu entries only show up when they actually make sense:

Martin Buerbaum martin.buerbaum at gmx.at
Fri Apr 23 09:29:49 CEST 2010


Revision: 634
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-extensions&revision=634
Author:   pontiac
Date:     2010-04-23 09:29:49 +0200 (Fri, 23 Apr 2010)

Log Message:
-----------
* Made various (objectmode) menu entries only show up when they actually make sense:
* "Transform", "Set Parent", "Delete Object" - Only when objects are selected.
* "Toggle Editmode/Objectmode"- Only when active object is a mesh.

Modified Paths:
--------------
    trunk/py/scripts/addons/space_view3d_dynamic_menu.py

Modified: trunk/py/scripts/addons/space_view3d_dynamic_menu.py
===================================================================
--- trunk/py/scripts/addons/space_view3d_dynamic_menu.py	2010-04-23 00:54:09 UTC (rev 633)
+++ trunk/py/scripts/addons/space_view3d_dynamic_menu.py	2010-04-23 07:29:49 UTC (rev 634)
@@ -104,13 +104,18 @@
         layout = self.layout
         layout.operator_context = 'INVOKE_REGION_WIN'
 
-        ob = context
+        obj_act = context.active_object
 
+        sel_objs = 0
+        if context.selected_objects:
+            sel_objs = len(context.selected_objects)
+
         # Search Block
         layout.operator("wm.search_menu", text="Search", icon='VIEWZOOM')
+
         layout.separator()
 
-        if ob.mode == 'OBJECT':
+        if context.mode == 'OBJECT':
             # Add block
             layout.menu("INFO_MT_mesh_add", text="Add Mesh",
                 icon='OUTLINER_OB_MESH')
@@ -122,35 +127,49 @@
                 icon='OUTLINER_OB_ARMATURE')
             layout.operator("object.add", text="Add Empty",
                 icon='OUTLINER_OB_EMPTY')
-            layout.separator()
 
-            # Transform block
-            layout.menu('VIEW3D_MT_transform', icon='MAN_TRANS')
+            if sel_objs:
+                layout.separator()
+
+                # Transform block
+                layout.menu('VIEW3D_MT_transform', icon='MAN_TRANS')
+
             layout.separator()
 
             # Other things
             layout.menu("VIEW3D_MT_object_group", icon='GROUP')
             layout.operator("object.modifier_add", icon='MODIFIER')
-            layout.separator()
 
-            # Parent block (add delete parent)
-            layout.operator("object.parent_set", icon='ROTACTIVE')
-            layout.separator()
+            # Display only when objects are actually selected.
+            if sel_objs:
+                layout.separator()
 
-            # Delete block
-            layout.operator("object.delete", text="Delete Object",
-                icon='CANCEL')
+                # Parent block (add delete parent)
+                layout.operator("object.parent_set", icon='ROTACTIVE')
 
-        elif ob.mode == 'EDIT_MESH':
+                layout.separator()
+
+                if sel_objs == 1:
+                    # Delete block
+                    layout.operator("object.delete", text="Delete Object",
+                        icon='CANCEL')
+                elif sel_objs > 1:
+                    # Delete block
+                    layout.operator("object.delete", text="Delete Objects",
+                        icon='CANCEL')
+
+        elif context.mode == 'EDIT_MESH':
             # Add block
             bl_label = "Create"
 
             layout.menu("INFO_MT_mesh_add", text="Add Mesh",
                 icon='OUTLINER_OB_MESH')
+
             layout.separator()
 
             # Transform block
             layout.menu('VIEW3D_MT_transform', icon='MAN_TRANS')
+
             layout.separator()
 
             # Select block
@@ -161,6 +180,7 @@
             layout.menu("VIEW3D_MT_edit_mesh_vertices", icon='VERTEXSEL')
             layout.menu("VIEW3D_MT_edit_mesh_edges", icon='EDGESEL')
             layout.menu("VIEW3D_MT_edit_mesh_faces", icon='FACESEL')
+
             layout.separator()
 
             # Tools block
@@ -176,19 +196,22 @@
         layout.operator("transform.snap_type", text="Snap Tools",
             icon='SNAP_ON')
         layout.menu("VIEW3D_MT_curs", icon='CURSOR')
-        layout.separator()
 
-        # Roggle Editmode
-        if ob.mode != 'EDIT_MESH':
-            layout.operator("object.editmode_toggle",
-                text="Enter Edit Mode",
-                icon='EDITMODE_HLT')
-        if ob.mode != 'OBJECT':
-            layout.operator("object.editmode_toggle",
-                text="Enter Object Mode",
-                icon='OBJECT_DATAMODE')
+        # Display editmode/objectmode toggle if active obj. is a mesh.
+        if obj_act.type == 'MESH':
+            layout.separator()
 
+            # Toggle Editmode
+            if context.mode != 'EDIT_MESH':
+                layout.operator("object.editmode_toggle",
+                    text="Enter Edit Mode",
+                    icon='EDITMODE_HLT')
+            if context.mode != 'OBJECT':
+                layout.operator("object.editmode_toggle",
+                    text="Enter Object Mode",
+                    icon='OBJECT_DATAMODE')
 
+
 class VIEW3D_MT_selectS(bpy.types.Menu):
     bl_label = "Selections"
 




More information about the Bf-extensions-cvs mailing list