Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlijenstina <lijenstina@gmail.com>2017-04-18 05:16:34 +0300
committerlijenstina <lijenstina@gmail.com>2017-04-18 05:16:34 +0300
commitad84001f6eb7b7da9dcbddea9cc940e0974d8677 (patch)
tree19831d0d8ad25958b480e3e32588be95eb3bbedb /space_view3d_spacebar_menu.py
parent93d779e1892f36c03968150b11578f0b9b3cf247 (diff)
Spacebar Menu: Fix Brush menu in Paint mode
Bumped version to 1.8.5 Fix the brush menu being broken by the missing brush attribute in Texture Painting mode before adding the UV map and the Paint Slot The bug is also in Blender's UI (from which the code is derived) Some small fixes - add a check to wire all Operator Update wiki link
Diffstat (limited to 'space_view3d_spacebar_menu.py')
-rw-r--r--space_view3d_spacebar_menu.py113
1 files changed, 76 insertions, 37 deletions
diff --git a/space_view3d_spacebar_menu.py b/space_view3d_spacebar_menu.py
index bf69867b..ddd387cd 100644
--- a/space_view3d_spacebar_menu.py
+++ b/space_view3d_spacebar_menu.py
@@ -20,12 +20,12 @@
bl_info = {
"name": "Dynamic Context Menu",
"author": "meta-androcto",
- "version": (1, 8, 4),
+ "version": (1, 8, 5),
"blender": (2, 77, 0),
"location": "View3D > Spacebar",
"description": "Object Mode Context Sensitive Spacebar Menu",
"warning": "",
- "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"
+ "wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/Py/"
"Scripts/3D_interaction/Dynamic_Spacebar_Menu",
"category": "3D View",
}
@@ -101,7 +101,8 @@ class VIEW3D_MT_Space_Dynamic_Menu(Menu):
layout.menu("VIEW3D_MT_Edit_Gpencil", icon='GREASEPENCIL')
layout.menu("VIEW3D_MT_Camera_Options", icon='OUTLINER_OB_CAMERA')
layout.operator_menu_enum("object.modifier_add", "type", icon='MODIFIER')
- layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
+ layout.operator_menu_enum("object.constraint_add",
+ "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
@@ -131,7 +132,8 @@ class VIEW3D_MT_Space_Dynamic_Menu(Menu):
layout.menu("VIEW3D_MT_edit_mesh_extrude", icon='ORTHO')
UseSeparator(self, context)
layout.operator_menu_enum("object.modifier_add", "type", icon='MODIFIER')
- layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
+ layout.operator_menu_enum("object.constraint_add",
+ "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_edit_mesh_delete", icon='X')
UseSeparator(self, context)
@@ -169,7 +171,8 @@ class VIEW3D_MT_Space_Dynamic_Menu(Menu):
layout.menu("VIEW3D_MT_View_Menu", icon='ZOOM_ALL')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_Brush_Settings", icon='BRUSH_DATA')
- layout.menu("VIEW3D_MT_Brush_Selection", text="Vertex Paint Tool", icon='BRUSH_VERTEXDRAW')
+ layout.menu("VIEW3D_MT_Brush_Selection",
+ text="Vertex Paint Tool", icon='BRUSH_VERTEXDRAW')
layout.menu("VIEW3D_MT_Vertex_Colors", icon='GROUP_VCOL')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS", icon='ARROW_LEFTRIGHT')
@@ -187,7 +190,8 @@ class VIEW3D_MT_Space_Dynamic_Menu(Menu):
UseSeparator(self, context)
layout.menu("VIEW3D_MT_Paint_Weights", icon='WPAINT_HLT')
layout.menu("VIEW3D_MT_Brush_Settings", icon='BRUSH_DATA')
- layout.menu("VIEW3D_MT_Brush_Selection", text="Weight Paint Tool", icon='BRUSH_TEXMASK')
+ layout.menu("VIEW3D_MT_Brush_Selection",
+ text="Weight Paint Tool", icon='BRUSH_TEXMASK')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Mode", icon='EDIT')
@@ -202,7 +206,8 @@ class VIEW3D_MT_Space_Dynamic_Menu(Menu):
UseSeparator(self, context)
layout.menu("VIEW3D_MT_View_Menu", icon='ZOOM_ALL')
layout.menu("VIEW3D_MT_Brush_Settings", icon='BRUSH_DATA')
- layout.menu("VIEW3D_MT_Brush_Selection", text="Texture Paint Tool", icon='SCULPTMODE_HLT')
+ layout.menu("VIEW3D_MT_Brush_Selection",
+ text="Texture Paint Tool", icon='SCULPTMODE_HLT')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Mode", icon='EDIT')
@@ -233,7 +238,8 @@ class VIEW3D_MT_Space_Dynamic_Menu(Menu):
layout.menu("VIEW3D_MT_Camera_Options", icon='OUTLINER_OB_CAMERA')
UseSeparator(self, context)
layout.operator_menu_enum("object.modifier_add", "type", icon='MODIFIER')
- layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
+ layout.operator_menu_enum("object.constraint_add",
+ "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
@@ -295,7 +301,8 @@ class VIEW3D_MT_Space_Dynamic_Menu(Menu):
layout.menu("VIEW3D_MT_object_specials", text="Specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_Camera_Options", icon='OUTLINER_OB_CAMERA')
layout.operator_menu_enum("object.modifier_add", "type", icon='MODIFIER')
- layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
+ layout.operator_menu_enum("object.constraint_add",
+ "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
@@ -357,7 +364,8 @@ class VIEW3D_MT_Space_Dynamic_Menu(Menu):
layout.menu("VIEW3D_MT_object_specials", text="Specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_Camera_Options", icon='OUTLINER_OB_CAMERA')
UseSeparator(self, context)
- layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
+ layout.operator_menu_enum("object.constraint_add",
+ "type", text="Add Constraint", icon='CONSTRAINT')
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS", icon='ARROW_LEFTRIGHT')
@@ -418,7 +426,8 @@ class VIEW3D_MT_Space_Dynamic_Menu(Menu):
layout.menu("VIEW3D_MT_Camera_Options", icon='OUTLINER_OB_CAMERA')
UseSeparator(self, context)
layout.operator_menu_enum("object.modifier_add", "type", icon='MODIFIER')
- layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
+ layout.operator_menu_enum("object.constraint_add",
+ "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
@@ -468,7 +477,8 @@ class VIEW3D_MT_Space_Dynamic_Menu(Menu):
layout.menu("VIEW3D_MT_object_specials", text="Specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_Camera_Options", icon='OUTLINER_OB_CAMERA')
UseSeparator(self, context)
- layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
+ layout.operator_menu_enum("object.constraint_add",
+ "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
@@ -498,7 +508,8 @@ class VIEW3D_MT_Space_Dynamic_Menu(Menu):
layout.menu("VIEW3D_MT_object_specials", text="Specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_Camera_Options", icon='OUTLINER_OB_CAMERA')
UseSeparator(self, context)
- layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
+ layout.operator_menu_enum("object.constraint_add",
+ "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
@@ -529,7 +540,8 @@ class VIEW3D_MT_Space_Dynamic_Menu(Menu):
layout.menu("VIEW3D_MT_object_specials", text="Specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_Camera_Options", icon='OUTLINER_OB_CAMERA')
UseSeparator(self, context)
- layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
+ layout.operator_menu_enum("object.constraint_add",
+ "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
@@ -599,7 +611,8 @@ class VIEW3D_MT_Space_Dynamic_Menu(Menu):
layout.menu("VIEW3D_MT_pose_specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_pose_group", icon='GROUP_BONE')
UseSeparator(self, context)
- layout.operator_menu_enum("pose.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT_BONE')
+ layout.operator_menu_enum("pose.constraint_add",
+ "type", text="Add Constraint", icon='CONSTRAINT_BONE')
UseSeparator(self, context)
layout.menu("VIEW3D_MT_UndoS", icon='ARROW_LEFTRIGHT')
layout.menu("VIEW3D_MT_Object_Interactive_Armature", icon='VIEW3D')
@@ -630,7 +643,8 @@ class VIEW3D_MT_Space_Dynamic_Menu(Menu):
layout.menu("VIEW3D_MT_Camera_Options", icon='OUTLINER_OB_CAMERA')
UseSeparator(self, context)
layout.operator_menu_enum("object.modifier_add", "type", icon='MODIFIER')
- layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
+ layout.operator_menu_enum("object.constraint_add",
+ "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
@@ -688,7 +702,8 @@ class VIEW3D_MT_Space_Dynamic_Menu(Menu):
layout.menu("VIEW3D_MT_object_specials", text="Specials", icon='SOLO_OFF')
layout.menu("VIEW3D_MT_Camera_Options", icon='OUTLINER_OB_CAMERA')
UseSeparator(self, context)
- layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
+ layout.operator_menu_enum("object.constraint_add",
+ "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
@@ -715,7 +730,8 @@ class VIEW3D_MT_Space_Dynamic_Menu(Menu):
layout.menu("VIEW3D_MT_ParentMenu", icon='ROTACTIVE')
layout.menu("VIEW3D_MT_GroupMenu", icon='GROUP')
UseSeparator(self, context)
- layout.operator_menu_enum("object.constraint_add", "type", text="Add Constraint", icon='CONSTRAINT')
+ layout.operator_menu_enum("object.constraint_add",
+ "type", text="Add Constraint", icon='CONSTRAINT')
UseSeparator(self, context)
layout.operator("object.delete", text="Delete Object", icon='X')
UseSeparator(self, context)
@@ -1514,6 +1530,7 @@ class VIEW3D_MT_Brush_Selection(Menu):
brush = None
if not brush:
+ layout.label(text="No Brushes currently available", icon="INFO")
return
if not context.particle_edit_object:
@@ -1551,7 +1568,7 @@ class VIEW3D_MT_Brush_Settings(Menu):
def draw(self, context):
layout = self.layout
settings = UnifiedPaintPanel.paint_settings(context)
- brush = settings.brush
+ brush = getattr(settings, "brush", None)
ups = context.tool_settings.unified_paint_settings
layout.prop(ups, "use_unified_size", text="Unified Size")
@@ -1560,11 +1577,12 @@ class VIEW3D_MT_Brush_Settings(Menu):
layout.prop(ups, "use_unified_color", text="Unified Color")
UseSeparator(self, context)
- layout.menu("VIEW3D_MT_brush_paint_modes")
-
if not brush:
+ layout.label(text="No Brushes currently available", icon="INFO")
return
+ layout.menu("VIEW3D_MT_brush_paint_modes")
+
if context.sculpt_object:
sculpt_tool = brush.sculpt_tool
@@ -1658,51 +1676,62 @@ class VIEW3D_MT_Sculpt_Specials(Menu):
settings = context.tool_settings
if context.sculpt_object.use_dynamic_topology_sculpting:
- layout.operator("sculpt.dynamic_topology_toggle", icon='X', text="Disable Dyntopo")
+ layout.operator("sculpt.dynamic_topology_toggle",
+ icon='X', text="Disable Dyntopo")
UseSeparator(self, context)
+
if (settings.sculpt.detail_type_method == 'CONSTANT'):
layout.prop(settings.sculpt, "constant_detail", text="Const.")
layout.operator("sculpt.sample_detail_size", text="", icon='EYEDROPPER')
else:
layout.prop(settings.sculpt, "detail_size", text="Detail")
-
UseSeparator(self, context)
+
layout.operator("sculpt.symmetrize", icon='ARROW_LEFTRIGHT')
layout.prop(settings.sculpt, "symmetrize_direction", "")
UseSeparator(self, context)
+
layout.operator("sculpt.optimize")
if (settings.sculpt.detail_type_method == 'CONSTANT'):
layout.operator("sculpt.detail_flood_fill")
-
UseSeparator(self, context)
+
layout.prop(settings.sculpt, "detail_refine_method", text="")
layout.prop(settings.sculpt, "detail_type_method", text="")
UseSeparator(self, context)
layout.prop(settings.sculpt, "use_smooth_shading", "Smooth")
-
else:
- layout.operator("sculpt.dynamic_topology_toggle", icon='SCULPT_DYNTOPO', text="Enable Dyntopo")
+ layout.operator("sculpt.dynamic_topology_toggle",
+ icon='SCULPT_DYNTOPO', text="Enable Dyntopo")
# Display Wire (Thanks to marvin.k.breuer) #
class VIEW3D_OT_Display_Wire_All(Operator):
- """Display Wire on All Objects"""
bl_label = "Wire on All Objects"
bl_idname = "view3d.display_wire_all"
+ bl_description = "Enable/Disable Display Wire on All Objects"
@classmethod
def poll(cls, context):
return context.active_object is not None
def execute(self, context):
-
+ is_error = False
for obj in bpy.data.objects:
- if obj.show_wire:
- obj.show_all_edges = False
- obj.show_wire = False
- else:
- obj.show_all_edges = True
- obj.show_wire = True
+ try:
+ if obj.show_wire:
+ obj.show_all_edges = False
+ obj.show_wire = False
+ else:
+ obj.show_all_edges = True
+ obj.show_wire = True
+ except:
+ is_error = True
+ pass
+
+ if is_error:
+ self.report({'WARNING'},
+ "Wire on All Objects could not be completed for some objects")
return {'FINISHED'}
@@ -1715,6 +1744,7 @@ class VIEW3D_MT_Vertex_Colors(Menu):
layout = self.layout
layout.operator("paint.vertex_color_set")
UseSeparator(self, context)
+
layout.operator("paint.vertex_color_smooth")
layout.operator("paint.vertex_color_dirt")
@@ -1726,8 +1756,10 @@ class VIEW3D_MT_Paint_Weights(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("paint.weight_from_bones", text="Assign Automatic From Bones").type = 'AUTOMATIC'
- layout.operator("paint.weight_from_bones", text="Assign From Bone Envelopes").type = 'ENVELOPES'
+ layout.operator("paint.weight_from_bones",
+ text="Assign Automatic From Bones").type = 'AUTOMATIC'
+ layout.operator("paint.weight_from_bones",
+ text="Assign From Bone Envelopes").type = 'ENVELOPES'
UseSeparator(self, context)
layout.operator("object.vertex_group_normalize_all", text="Normalize All")
@@ -1737,19 +1769,22 @@ class VIEW3D_MT_Paint_Weights(Menu):
layout.operator("object.vertex_group_mirror", text="Mirror")
layout.operator("object.vertex_group_invert", text="Invert")
UseSeparator(self, context)
+
layout.operator("object.vertex_group_clean", text="Clean")
layout.operator("object.vertex_group_quantize", text="Quantize")
UseSeparator(self, context)
+
layout.operator("object.vertex_group_levels", text="Levels")
layout.operator("object.vertex_group_smooth", text="Smooth")
UseSeparator(self, context)
+
props = layout.operator("object.data_transfer", text="Transfer Weights")
props.use_reverse_transfer = True
props.data_type = 'VGROUP_WEIGHTS'
UseSeparator(self, context)
+
layout.operator("object.vertex_group_limit_total", text="Limit Total")
layout.operator("object.vertex_group_fix", text="Fix Deforms")
-
UseSeparator(self, context)
layout.operator("paint.weight_set")
@@ -1767,17 +1802,21 @@ class VIEW3D_MT_Edit_Armature(Menu):
layout.prop_menu_enum(toolsettings, "proportional_edit", icon="PROP_CON")
layout.prop_menu_enum(toolsettings, "proportional_edit_falloff", icon="SMOOTHCURVE")
UseSeparator(self, context)
+
layout.menu("VIEW3D_MT_bone_options_toggle", text="Bone Settings")
layout.operator("armature.merge")
layout.operator("armature.fill")
layout.operator("armature.split")
layout.operator("armature.separate")
layout.operator("armature.switch_direction", text="Switch Direction")
+
layout.operator_context = 'EXEC_AREA'
layout.operator("armature.symmetrize")
UseSeparator(self, context)
+
layout.operator("armature.delete")
UseSeparator(self, context)
+
layout.operator_context = 'INVOKE_DEFAULT'
layout.operator("armature.armature_layers")
layout.operator("armature.bone_layers")