[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